summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-09-30 18:21:32 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-30 19:43:38 (GMT)
commitbe1b9112e85c270920a559acd790340ca32bce7f (patch)
tree9cfd011bd6b3cb030c825613ae43fcdee5c43c73 /src
parent1c60ce25ee2fe15cc4bfa0649853bf6a0b95c14d (diff)
downloadpowder-be1b9112e85c270920a559acd790340ca32bce7f.zip
powder-be1b9112e85c270920a559acd790340ca32bce7f.tar.gz
Fix some uninitialized variables, add back sandcolor changing
Diffstat (limited to 'src')
-rw-r--r--src/simulation/Simulation.cpp13
-rw-r--r--src/simulation/Simulation.h6
-rw-r--r--src/virtualmachine/Syscalls.cpp13
3 files changed, 24 insertions, 8 deletions
diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp
index 462d4a3..004a914 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 83e5629..ba9fa1a 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 876fe52..31b7dd4 100644
--- a/src/virtualmachine/Syscalls.cpp
+++ b/src/virtualmachine/Syscalls.cpp
@@ -14,31 +14,37 @@ namespace vm
TRAPDEF(sin)
{
Push<float4_t>(sin(ARG(0).float4));
+ return 0;
}
TRAPDEF(cos)
{
Push<float4_t>(cos(ARG(0).float4));
+ return 0;
}
TRAPDEF(atan2)
{
Push<float4_t>(atan2(ARG(0).float4, ARG(1).float4));
+ return 0;
}
TRAPDEF(sqrt)
{
Push<float4_t>(sqrt(ARG(0).float4));
+ return 0;
}
TRAPDEF(floor)
{
Push<float4_t>(floor(ARG(0).float4));
+ return 0;
}
TRAPDEF(ceil)
{
Push<float4_t>(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<int4_t>(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<int4_t>(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;
}
}