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);
graphics.draw_rect(x, y, 32, 8, graphics.getRGB(255, 255, 255));
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
graphics.draw_sprite(x, y, 22, 196, 196, 196);
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.type = 4;
entity.size = 0;
entity.tile = 11;
entity.tile = 68 + meta1;
entity.colour = meta2;
entity.w = 16;
entity.h = 16;
entity.behave = meta1;
entity.para = meta2;
entity.behave = p2;
entity.para = p3;
entity.onentity = 1;
entity.animate = 100;
entity.animate = (p1 >= 1) ? 1 : -1;
break;
case 6: //Decorative particles
entity.rule = 2;
@ -2638,8 +2639,22 @@ bool entityclass::updateentities( int i )
{
game.gravitycontrol = (game.gravitycontrol + 1) % 2;
++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;
case 5: //Particle sprays
@ -3479,6 +3494,7 @@ void entityclass::animateentities( int _i )
}
break;
case 1:
case 4:
case 23:
//Variable animation
switch(entities[_i].animate)

View File

@ -421,6 +421,11 @@ void gamelogic(void)
}
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)
{
//if playing SWN, get the enemies offscreen.

View File

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