small oops

This commit is contained in:
IonutParau 2025-07-20 17:57:21 +02:00
parent 710ec2103e
commit db064a691e
2 changed files with 23 additions and 13 deletions

View File

@ -208,6 +208,16 @@ static void nni_modem_send(nn_modem *modem, void *_, nn_component *component, nn
vals[i] = nn_getArgument(computer, i + 2); vals[i] = nn_getArgument(computer, i + 2);
} }
nn_size_t bytesSent = nn_measurePacketSize(vals, valLen);
if(bytesSent > modem->table.maxPacketSize) {
nn_setCError(computer, "packet too big");
return;
}
nn_simulateBufferedIndirect(component, bytesSent, modem->ctrl.packetBytesPerTick);
double d = (double)bytesSent / modem->table.maxPacketSize;
nn_addHeat(computer, d * modem->ctrl.heatPerFullPacket);
nn_removeEnergy(computer, d * modem->ctrl.energyPerFullPacket);
nn_errorbuf_t err = ""; nn_errorbuf_t err = "";
nn_lock(&modem->ctx, modem->lock); nn_lock(&modem->ctx, modem->lock);
nn_bool_t res = modem->table.send(modem->table.userdata, addr, port, vals, valLen, err); nn_bool_t res = modem->table.send(modem->table.userdata, addr, port, vals, valLen, err);
@ -238,6 +248,16 @@ static void nni_modem_broadcast(nn_modem *modem, void *_, nn_component *componen
for(nn_size_t i = 0; i < valLen; i++) { for(nn_size_t i = 0; i < valLen; i++) {
vals[i] = nn_getArgument(computer, i + 1); vals[i] = nn_getArgument(computer, i + 1);
} }
nn_size_t bytesSent = nn_measurePacketSize(vals, valLen);
if(bytesSent > modem->table.maxPacketSize) {
nn_setCError(computer, "packet too big");
return;
}
nn_simulateBufferedIndirect(component, bytesSent, modem->ctrl.packetBytesPerTick);
double d = (double)bytesSent / modem->table.maxPacketSize;
nn_addHeat(computer, d * modem->ctrl.heatPerFullPacket);
nn_removeEnergy(computer, d * modem->ctrl.energyPerFullPacket);
nn_errorbuf_t err = ""; nn_errorbuf_t err = "";
nn_lock(&modem->ctx, modem->lock); nn_lock(&modem->ctx, modem->lock);

View File

@ -723,9 +723,9 @@ int main() {
.screenSetsPerTick = 32, .screenSetsPerTick = 32,
.screenColorChangesPerTick = 64, .screenColorChangesPerTick = 64,
.heatPerPixelChange = 0.0005, .heatPerPixelChange = 0.00005,
.heatPerPixelReset = 0.0001, .heatPerPixelReset = 0.00001,
.heatPerVRAMChange = 0.000015, .heatPerVRAMChange = 0.00000015,
.energyPerPixelChange = 0.05, .energyPerPixelChange = 0.05,
.energyPerPixelReset = 0.01, .energyPerPixelReset = 0.01,
@ -916,16 +916,6 @@ render:
} }
} }
Color heatColor = GREEN;
if(heat > 60) heatColor = YELLOW;
if(heat > 80) heatColor = RED;
size_t memUsage = nn_getComputerMemoryUsed(computer);
size_t memTotal = nn_getComputerMemoryTotal(computer);
DrawText(TextFormat("Heat: %.02lf Memory Used: %.2lf%%", heat, (double)memUsage / memTotal * 100), 10, GetScreenHeight() - 30, 20, heatColor);
DrawFPS(10, 10);
EndDrawing(); EndDrawing();
} }