This commit is contained in:
Ally 2024-02-16 13:11:58 +09:00 committed by GitHub
commit 79c82f60a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 34 additions and 6 deletions

View File

@ -993,6 +993,10 @@ static void draw_entities(void)
font::print(PR_FONT_8X8, x, y, "////", 255 - help.glow, 255 - help.glow, 255 - help.glow); font::print(PR_FONT_8X8, x, y, "////", 255 - help.glow, 255 - help.glow, 255 - help.glow);
graphics.draw_rect(x, y, 32, 8, graphics.getRGB(255, 255, 255)); graphics.draw_rect(x, y, 32, 8, graphics.getRGB(255, 255, 255));
break; break;
case 5: // Gravity Tokens
graphics.draw_sprite(x, y, 68 + entity->p1, graphics.getcol(entity->p2));
graphics.draw_rect(x, y, 16, 16, graphics.getRGB(255, 164, 164));
break;
case 9: // Shiny Trinkets case 9: // Shiny Trinkets
graphics.draw_sprite(x, y, 22, 196, 196, 196); graphics.draw_sprite(x, y, 22, 196, 196, 196);
graphics.draw_rect(x, y, 16, 16, graphics.getRGB(255, 164, 164)); graphics.draw_rect(x, y, 16, 16, graphics.getRGB(255, 164, 164));

View File

@ -1484,13 +1484,14 @@ void entityclass::createentity(int xp, int yp, int t, int meta1, int meta2, int
entity.rule = 3; entity.rule = 3;
entity.type = 4; entity.type = 4;
entity.size = 0; entity.size = 0;
entity.tile = 11; entity.tile = 68 + meta1;
entity.colour = meta2;
entity.w = 16; entity.w = 16;
entity.h = 16; entity.h = 16;
entity.behave = meta1; entity.behave = p2;
entity.para = meta2; entity.para = p3;
entity.onentity = 1; entity.onentity = 1;
entity.animate = 100; entity.animate = (p1 >= 1) ? 1 : -1;
break; break;
case 6: //Decorative particles case 6: //Decorative particles
entity.rule = 2; entity.rule = 2;
@ -2638,8 +2639,22 @@ bool entityclass::updateentities( int i )
{ {
game.gravitycontrol = (game.gravitycontrol + 1) % 2; game.gravitycontrol = (game.gravitycontrol + 1) % 2;
++game.totalflips; ++game.totalflips;
return disableentity(i); music.playef(8 + entities[i].behave);
entities[i].invis = true;
entities[i].state = 2;
// Removes collision
entities[i].onentity = 0;
}
else if (entities[i].state == 2)
{
// Wait until recharged!
}
else if (entities[i].state == 3)
{
// Respawn!
entities[i].invis = false;
entities[i].state = 0;
entities[i].onentity = 1;
} }
break; break;
case 5: //Particle sprays case 5: //Particle sprays
@ -3479,6 +3494,7 @@ void entityclass::animateentities( int _i )
} }
break; break;
case 1: case 1:
case 4:
case 23: case 23:
//Variable animation //Variable animation
switch(entities[_i].animate) switch(entities[_i].animate)

View File

@ -421,6 +421,11 @@ void gamelogic(void)
} }
if (!entitygone) obj.entities[i].state = 4; if (!entitygone) obj.entities[i].state = 4;
} }
else if (obj.entities[i].type == 4 && obj.entities[i].state == 2)
{
// Gravity token: Give a signal to respawn
obj.entities[i].state = 3;
}
else if (obj.entities[i].type == 23 && game.swnmode && game.deathseq<15) else if (obj.entities[i].type == 23 && game.swnmode && game.deathseq<15)
{ {
//if playing SWN, get the enemies offscreen. //if playing SWN, get the enemies offscreen.

View File

@ -1865,6 +1865,9 @@ void mapclass::loadlevel(int rx, int ry)
case 3: // Disappearing platforms case 3: // Disappearing platforms
obj.createentity(ex, ey, 3); obj.createentity(ex, ey, 3);
break; break;
case 5: // Gravity tokens
obj.createentity(ex, ey, 5, ent.p1, ent.p2, ent.p3, ent.p4);
break;
case 9: // Trinkets case 9: // Trinkets
obj.createentity(ex, ey, 9, cl.findtrinket(edi)); obj.createentity(ex, ey, 9, cl.findtrinket(edi));
break; break;