@@ -281,10 +281,8 @@ int main(int argc,char** argv)
level = choose_level_bossrush(commands);
setup_level_bossrush(level, shootrate, poweruprate, walls_num, refresh_time);
reset(player1, enemies, boss1, bullets, bombs, walls, walls_num, powerups, rockets, chflag); // reset box, player, enemy and deletes all bullets and bombs
- resetbosses(bosses,boss1,player1);
+ resetbosses(bosses,boss1,player1,level);
num=0;
- if(level<3)
- player1.weaponclass=2;
erase();
refresh();
continue; // Go to the beginning of the main loop
@@ -1476,7 +1476,7 @@ void setup_level_bossrush(int level, double& shootr, double& poweruprate, int& w
}
-void resetbosses(boss* Bosses,boss& boss1,player& player1){
+void resetbosses(boss* Bosses,boss& boss1,player& player1,int level){
boss* bosses=Bosses;
bosses->health=bosses->healthmax;
@@ -1492,7 +1492,19 @@ void resetbosses(boss* Bosses,boss& boss1,player& player1){
boss1=*Bosses;
boss1.alive=true;
- player1.weaponclass=1;
+ // NOTE(jp): level starts from 1
+ switch (level) {
+ case 1:
+ player1.weaponclass=2;
+ break;
+ case 2:
+ case 3:
+ player1.weaponclass=1;
+ default:
+ player1.weaponclass=0;
+ }
void Victory_bossrush(std::string name,int score,int level,int chflag){
@@ -94,7 +94,7 @@ int choose_level_bossrush(int* commands);
void setup_level_bossrush(int level, double& shootr, double& poweruprate, int& walls_num, int& refresh_t);
-void resetbosses(boss* Bosses,boss& boss1,player& player1);
+void resetbosses(boss* Bosses,boss& boss1,player& player1,int);
void Victory_bossrush(std::string,int,int,int);