1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-23 10:09:43 +01:00

De-duplicate expressions of actual coordinates for edentities

Previously it copy-pasted this god-awful overcomplicated expression
(possibly for cursed ActionScript legacy reasons?) everywhere, instead
of putting it in a variable, or even just using a simpler one like the
one I replaced it with.

Now the obj.createentity() and obj.createblock() calls are much nicer.
This commit is contained in:
Misa 2020-07-09 02:28:53 -07:00 committed by Ethan Lee
parent 34b0e2c812
commit d591c77088

View file

@ -1686,6 +1686,8 @@ void mapclass::loadlevel(int rx, int ry)
{
continue;
}
const int ex = (edentity[edi].x % 40) * 8;
const int ey = (edentity[edi].y % 30) * 8;
switch(edentity[edi].t){
case 1: //Enemies
int bx1, by1, bx2, by2;
@ -1698,7 +1700,7 @@ void mapclass::loadlevel(int rx, int ry)
if(warpy){ if(by1==0 && by2==240){ by1=-100; by2=340; } }
obj.customenemy=ed.level[tsx+((ed.maxwidth)*tsy)].enemytype;
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 56,
obj.createentity(ex, ey, 56,
edentity[edi].p1, 4, bx1, by1, bx2, by2);
break;
case 2: //Platforms and Threadmills
@ -1712,43 +1714,43 @@ void mapclass::loadlevel(int rx, int ry)
if(warpx){ if(bx1==0 && bx2==320){ bx1=-100; bx2=420; } }
if(warpy){ if(by1==0 && by2==240){ by1=-100; by2=340; } }
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 2,
obj.createentity(ex, ey, 2,
edentity[edi].p1, ed.level[rx-100+((ry-100)*ed.mapwidth)].platv, bx1, by1, bx2, by2);
}else if(edentity[edi].p1>=5 && edentity[edi].p1<=8){ //Threadmill
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 2,
obj.createentity(ex, ey, 2,
edentity[edi].p1+3, 4);
}
break;
case 3: //Disappearing platforms
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 3);
obj.createentity(ex, ey, 3);
break;
case 9:
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 9, ed.findtrinket(edi));
obj.createentity(ex, ey, 9, ed.findtrinket(edi));
break;
case 10: //Checkpoints
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 10,
obj.createentity(ex, ey, 10,
edentity[edi].p1,((rx+(ry*100))*20)+tempcheckpoints);
tempcheckpoints++;
break;
case 11: //Gravity Lines
if(edentity[edi].p1==0){ //Horizontal
obj.createentity((edentity[edi].p2*8),(edentity[edi].y*8)- ((ry-100)*30*8)+4, 11, edentity[edi].p3);
obj.createentity((edentity[edi].p2*8), ey + 4, 11, edentity[edi].p3);
}else{ //Vertical
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8)+3,(edentity[edi].p2*8), 12, edentity[edi].p3);
obj.createentity(ex + 3,(edentity[edi].p2*8), 12, edentity[edi].p3);
}
break;
case 13: //Warp Tokens
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8), 13, edentity[edi].p1, edentity[edi].p2);
obj.createentity(ex, ey, 13, edentity[edi].p1, edentity[edi].p2);
break;
case 15: //Collectable crewmate
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8)-4,(edentity[edi].y*8)- ((ry-100)*30*8)+1, 55, ed.findcrewmate(edi), edentity[edi].p1, edentity[edi].p2);
obj.createentity(ex - 4, ey + 1, 55, ed.findcrewmate(edi), edentity[edi].p1, edentity[edi].p2);
break;
case 17: //Roomtext!
{
roomtexton = true;
Roomtext text;
text.x = edentity[edi].x - ((rx-100)*40);
text.y = edentity[edi].y - ((ry-100)*30);
text.x = ex / 8;
text.y = ey / 8;
text.text = edentity[edi].scriptname;
roomtext.push_back(text);
break;
@ -1758,7 +1760,7 @@ void mapclass::loadlevel(int rx, int ry)
obj.customscript=edentity[edi].scriptname;
int usethistile = edentity[edi].p1;
int usethisy = (edentity[edi].y*8)- ((ry-100)*30*8);
int usethisy = ey;
// This isn't a boolean: we just swap 0 and 1 around and leave the rest alone
if (usethistile == 0)
@ -1771,8 +1773,8 @@ void mapclass::loadlevel(int rx, int ry)
usethisy -= 8;
}
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8), usethisy+8, 20, usethistile);
obj.createblock(5, (edentity[edi].x*8)- ((rx-100)*40*8)-8, usethisy+8, 20, 16, 35);
obj.createentity(ex, usethisy + 8, 20, usethistile);
obj.createblock(5, ex - 8, usethisy + 8, 20, 16, 35);
break;
}
case 19: //Script Box
@ -1780,20 +1782,20 @@ void mapclass::loadlevel(int rx, int ry)
{
game.customscript[tempscriptbox]=edentity[edi].scriptname;
}
obj.createblock(1, (edentity[edi].x*8)- ((rx-100)*40*8), (edentity[edi].y*8)- ((ry-100)*30*8),
obj.createblock(1, ex, ey,
edentity[edi].p1*8, edentity[edi].p2*8, 300+tempscriptbox, "custom_" + edentity[edi].scriptname);
tempscriptbox++;
break;
case 50: //Warp Lines
obj.customwarpmode=true;
if(edentity[edi].p1==0){ //
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8)+4,(edentity[edi].p2*8), 51, edentity[edi].p3);
obj.createentity(ex + 4,(edentity[edi].p2*8), 51, edentity[edi].p3);
}else if(edentity[edi].p1==1){ //Horizontal, right
obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8)+4,(edentity[edi].p2*8), 52, edentity[edi].p3);
obj.createentity(ex + 4,(edentity[edi].p2*8), 52, edentity[edi].p3);
}else if(edentity[edi].p1==2){ //Vertical, top
obj.createentity((edentity[edi].p2*8),(edentity[edi].y*8)- ((ry-100)*30*8)+7, 53, edentity[edi].p3);
obj.createentity((edentity[edi].p2*8), ey + 7, 53, edentity[edi].p3);
}else if(edentity[edi].p1==3){
obj.createentity((edentity[edi].p2*8),(edentity[edi].y*8)- ((ry-100)*30*8), 54, edentity[edi].p3);
obj.createentity((edentity[edi].p2*8), ey, 54, edentity[edi].p3);
}
break;
}