From be1b9112e85c270920a559acd790340ca32bce7f Mon Sep 17 00:00:00 2001 From: jacob1 Date: Sun, 30 Sep 2012 14:21:32 -0400 Subject: [PATCH] Fix some uninitialized variables, add back sandcolor changing --- src/simulation/Simulation.cpp | 13 +++++++++---- src/simulation/Simulation.h | 6 ++---- src/virtualmachine/Syscalls.cpp | 13 +++++++++++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 462d4a3b9..004a91491 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -3020,9 +3020,9 @@ int Simulation::create_part(int p, int x, int y, int tv) { int colr, colg, colb, randa; randa = (rand()%30)-15; - colr = (PIXR(elements[t].Colour)+sandcolour_r+(rand()%20)-10+randa); - colg = (PIXG(elements[t].Colour)+sandcolour_g+(rand()%20)-10+randa); - colb = (PIXB(elements[t].Colour)+sandcolour_b+(rand()%20)-10+randa); + colr = (PIXR(elements[t].Colour)+sandcolour+(rand()%20)-10+randa); + colg = (PIXG(elements[t].Colour)+sandcolour+(rand()%20)-10+randa); + colb = (PIXB(elements[t].Colour)+sandcolour+(rand()%20)-10+randa); colr = colr>255 ? 255 : (colr<0 ? 0 : colr); colg = colg>255 ? 255 : (colg<0 ? 0 : colg); colb = colb>255 ? 255 : (colb<0 ? 0 : colb); @@ -4483,6 +4483,8 @@ void Simulation::update_particles()//doesn't update the particles themselves, bu if(emp_decor < 0) emp_decor = 0; } + sandcolour = (int)(20.0f*sin((float)sandcolour_frame*(M_PI/180.0f))); + sandcolour_frame = (sandcolour_frame++)%360; memset(pmap, 0, sizeof(pmap)); memset(pmap_count, 0, sizeof(pmap_count)); @@ -4586,7 +4588,10 @@ Simulation::~Simulation() } Simulation::Simulation(): - sys_pause(0) + sys_pause(0), + framerender(false), + pretty_powder(0), + sandcolour_frame(0) { int tportal_rx[] = {-1, 0, 1, 1, 1, 0,-1,-1}; diff --git a/src/simulation/Simulation.h b/src/simulation/Simulation.h index 83e562907..ba9fa1ae3 100644 --- a/src/simulation/Simulation.h +++ b/src/simulation/Simulation.h @@ -115,10 +115,8 @@ public: int sys_pause; int framerender; int pretty_powder; - // - int sandcolour_r; - int sandcolour_g; - int sandcolour_b; //TODO: Make a single variable + int sandcolour; + int sandcolour_frame; int Load(GameSave * save); int Load(int x, int y, GameSave * save); diff --git a/src/virtualmachine/Syscalls.cpp b/src/virtualmachine/Syscalls.cpp index 876fe5201..31b7dd465 100644 --- a/src/virtualmachine/Syscalls.cpp +++ b/src/virtualmachine/Syscalls.cpp @@ -14,31 +14,37 @@ namespace vm TRAPDEF(sin) { Push(sin(ARG(0).float4)); + return 0; } TRAPDEF(cos) { Push(cos(ARG(0).float4)); + return 0; } TRAPDEF(atan2) { Push(atan2(ARG(0).float4, ARG(1).float4)); + return 0; } TRAPDEF(sqrt) { Push(sqrt(ARG(0).float4)); + return 0; } TRAPDEF(floor) { Push(floor(ARG(0).float4)); + return 0; } TRAPDEF(ceil) { Push(ceil(ARG(0).float4)); + return 0; } @@ -47,6 +53,7 @@ namespace vm char *text; text = (char*)(ram) + ARG(0).int4; printf("%s", text); + return 0; } @@ -56,31 +63,37 @@ namespace vm msg = (char*)(ram) + ARG(0).int4; printf("%s", msg); End(); + return 0; } TRAPDEF(partCreate) { Push(sim->create_part(ARG(0).int4, ARG(1).int4, ARG(2).int4, ARG(3).int4)); + return 0; } TRAPDEF(partChangeType) { sim->part_change_type(ARG(0).int4, ARG(1).int4, ARG(2).int4, ARG(3).int4); + return 0; } TRAPDEF(pmapData) { Push(sim->pmap[ARG(1).int4][ARG(0).int4]); + return 0; } TRAPDEF(deletePart) { sim->delete_part(ARG(0).int4, ARG(1).int4, ARG(2).int4); + return 0; } TRAPDEF(killPart) { sim->kill_part(ARG(0).int4); + return 0; } }