NiGHTS lap score bonus

This commit is contained in:
mazmazz 2018-08-12 19:45:34 -04:00
parent 0c0a403bb3
commit fe904b0eb2
2 changed files with 28 additions and 4 deletions

View file

@ -1198,9 +1198,11 @@ static void readlevelheader(MYFILE *f, INT32 num)
else if (fastcmp(word2, "ERZ3")) i = 2;
else if (fastcmp(word2, "NIGHTS")) i = 3;
else if (fastcmp(word2, "NIGHTSLINK")) i = 4;
else if (fastcmp(word2, "NIGHTSALL")) i = 5;
else if (fastcmp(word2, "NIGHTSLAP")) i = 5;
else if (fastcmp(word2, "NIGHTSLINKLAP")) i = 6;
else if (fastcmp(word2, "NIGHTSALL")) i = 7;
if (i >= -1 && i <= 5) // -1 for no bonus. Max is 2.
if (i >= -1 && i <= 7) // -1 for no bonus. Max is 2.
mapheaderinfo[num-1]->bonustype = (SINT8)i;
else
deh_warning("Level header %d: invalid bonus type number %d", num, i);

View file

@ -1764,6 +1764,16 @@ static void Y_SetNightsBonus(player_t *player, y_bonus_t *bstruct)
bstruct->points = player->totalmarescore;
}
//
// Y_SetLapBonus
//
static void Y_SetLapBonus(player_t *player, y_bonus_t *bstruct)
{
strncpy(bstruct->patch, "YB_LAP", sizeof(bstruct->patch));
bstruct->display = true;
bstruct->points = max(0, (player->totalmarebonuslap) * 100);
}
//
// Y_SetLinkBonus
//
@ -1825,7 +1835,7 @@ static void Y_SetPerfectBonus(player_t *player, y_bonus_t *bstruct)
// This list can be extended in the future with SOC/Lua, perhaps.
typedef void (*bonus_f)(player_t *, y_bonus_t *);
bonus_f bonuses_list[7][4] = {
bonus_f bonuses_list[9][4] = {
{
Y_SetNullBonus,
Y_SetNullBonus,
@ -1862,11 +1872,23 @@ bonus_f bonuses_list[7][4] = {
Y_SetLinkBonus,
Y_SetNullBonus,
},
{
Y_SetNullBonus,
Y_SetNullBonus,
Y_SetLapBonus,
Y_SetNullBonus,
},
{
Y_SetNullBonus,
Y_SetLinkBonus,
Y_SetLapBonus,
Y_SetNullBonus,
},
{
Y_SetNullBonus,
Y_SetNightsBonus,
Y_SetLinkBonus,
Y_SetNullBonus,
Y_SetLapBonus,
},
};