fixed full power at stage start

This commit is contained in:
laochailan 2017-09-19 11:52:18 +02:00
parent 1a8ded5321
commit 5686b45201
4 changed files with 10 additions and 16 deletions

View file

@ -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:

View file

@ -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:

View file

@ -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);

View file

@ -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();