Fix portals

This commit is contained in:
Simon Robertshaw 2012-04-16 21:19:12 +01:00
parent 465cb12af4
commit c3c31b20b0
2 changed files with 6 additions and 5 deletions

View File

@ -6,8 +6,6 @@
PRTO does (count+4)%8, so that it will come out at the opposite place to where it came in PRTO does (count+4)%8, so that it will come out at the opposite place to where it came in
PRTO does +/-1 to the count, so it doesn't jam as easily PRTO does +/-1 to the count, so it doesn't jam as easily
*/ */
int portal_rx[8] = {-1, 0, 1, 1, 1, 0,-1,-1};
int portal_ry[8] = {-1,-1,-1, 0, 1, 1, 1, 0};
int update_PRTI(UPDATE_FUNC_ARGS) { int update_PRTI(UPDATE_FUNC_ARGS) {
int r, nnx, rx, ry, fe = 0; int r, nnx, rx, ry, fe = 0;
@ -17,8 +15,8 @@ int update_PRTI(UPDATE_FUNC_ARGS) {
else if (parts[i].tmp<0) parts[i].tmp = 0; else if (parts[i].tmp<0) parts[i].tmp = 0;
for (count=0; count<8; count++) for (count=0; count<8; count++)
{ {
rx = portal_rx[count]; rx = sim->portal_rx[count];
ry = portal_ry[count]; ry = sim->portal_ry[count];
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry)) if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{ {
r = pmap[y+ry][x+rx]; r = pmap[y+ry][x+rx];

View File

@ -3372,7 +3372,9 @@ Simulation::~Simulation()
} }
Simulation::Simulation(): Simulation::Simulation():
sys_pause(0) sys_pause(0),
portal_rx({-1, 0, 1, 1, 1, 0,-1,-1}),
portal_ry({-1,-1,-1, 0, 1, 1, 1, 0})
{ {
//Create and attach gravity simulation //Create and attach gravity simulation
grav = new Gravity(); grav = new Gravity();
@ -3397,6 +3399,7 @@ Simulation::Simulation():
pv = air->pv; pv = air->pv;
hv = air->hv; hv = air->hv;
//Clear signs
signs = (sign*)calloc(MAXSIGNS, sizeof(sign)); signs = (sign*)calloc(MAXSIGNS, sizeof(sign));
int menuCount; int menuCount;