fixed full power at stage start
This commit is contained in:
parent
1a8ded5321
commit
5686b45201
4 changed files with 10 additions and 16 deletions
|
@ -110,7 +110,7 @@ void process_items(void) {
|
|||
if(v == 1) {
|
||||
switch(item->type) {
|
||||
case Power:
|
||||
player_set_power(&global.plr, global.plr.power + POWER_VALUE);
|
||||
player_set_power(&global.plr, global.plr.power + POWER_VALUE,true);
|
||||
play_sound("item_generic");
|
||||
break;
|
||||
case Point:
|
||||
|
|
10
src/player.c
10
src/player.c
|
@ -54,7 +54,7 @@ static void player_full_power(Player *plr) {
|
|||
stagetext_add("Full Power!", VIEWPORT_W * 0.5 + VIEWPORT_H * 0.33 * I, AL_Center, _fonts.mainmenu, rgb(1, 1, 1), 0, 60, 20, 20);
|
||||
}
|
||||
|
||||
void player_set_power(Player *plr, short npow) {
|
||||
void player_set_power(Player *plr, short npow, bool handle_fullpower) {
|
||||
npow = clamp(npow, 0, PLR_MAX_POWER);
|
||||
|
||||
switch(plr->cha) {
|
||||
|
@ -69,7 +69,7 @@ void player_set_power(Player *plr, short npow) {
|
|||
int oldpow = plr->power;
|
||||
plr->power = npow;
|
||||
|
||||
if(plr->power == PLR_MAX_POWER && oldpow < PLR_MAX_POWER) {
|
||||
if(plr->power == PLR_MAX_POWER && oldpow < PLR_MAX_POWER && handle_fullpower) {
|
||||
player_full_power(plr);
|
||||
}
|
||||
}
|
||||
|
@ -260,7 +260,7 @@ void player_realdeath(Player *plr) {
|
|||
int drop = max(2, (plr->power * 0.15) / POWER_VALUE);
|
||||
spawn_items(death_origin, Power, drop, NULL);
|
||||
|
||||
player_set_power(plr, plr->power * 0.7);
|
||||
player_set_power(plr, plr->power * 0.7,true);
|
||||
plr->bombs = PLR_START_BOMBS;
|
||||
plr->bomb_fragments = 0;
|
||||
|
||||
|
@ -328,11 +328,11 @@ void player_event(Player* plr, int type, int key) {
|
|||
break;
|
||||
|
||||
case KEY_POWERUP:
|
||||
player_set_power(plr, plr->power + 100);
|
||||
player_set_power(plr, plr->power + 100,true);
|
||||
break;
|
||||
|
||||
case KEY_POWERDOWN:
|
||||
player_set_power(plr, plr->power - 100);
|
||||
player_set_power(plr, plr->power - 100,true);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -128,7 +128,7 @@ void player_draw(Player*);
|
|||
void player_logic(Player*);
|
||||
|
||||
void player_set_char(Player*, Character);
|
||||
void player_set_power(Player *plr, short npow);
|
||||
void player_set_power(Player *plr, short npow, bool handle_fullpower);
|
||||
|
||||
void player_move(Player*, complex delta);
|
||||
|
||||
|
|
12
src/stage.c
12
src/stage.c
|
@ -556,17 +556,11 @@ void stage_loop(StageInfo *stage) {
|
|||
stg->playpos = 0;
|
||||
}
|
||||
|
||||
Enemy *e = global.plr.slaves, *tmp;
|
||||
// TODO: remove handle_fullpower from player_set_power and get rid of this hack
|
||||
short power = global.plr.power;
|
||||
global.plr.power = -1;
|
||||
|
||||
while(e != 0) {
|
||||
tmp = e;
|
||||
e = e->next;
|
||||
delete_enemy(&global.plr.slaves, tmp);
|
||||
}
|
||||
|
||||
player_set_power(&global.plr, power);
|
||||
delete_enemies(&global.plr.slaves);
|
||||
player_set_power(&global.plr, power,false);
|
||||
|
||||
stage->procs->begin();
|
||||
|
||||
|
|
Loading…
Reference in a new issue