Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for (int i = 0; i < warps.size(); i++)
- {
- // Get player's feet
- double px = player->X + player->Width * player->SCALE / 2;
- double py = player->Y + player->Height * player->SCALE;
- SDL_Point p = { px, py };
- if (SDL_PointInRect(&p, &warps[i].Rect) && !player->JustWarped)
- {
- player->TargetWarp = warps[i].TargetWarpID;
- player->JustWarped = true;
- Mix_PlayChannel(-1, sfx_warp, 0);
- if (warps[i].RemoveItems == "all")
- {
- player->Inventory.clear();
- }
- bool override_map = false;
- flags["warp_sequence_reset"] = false;
- if (flags["save_warp_sequence"])
- {
- bool cleared = true;
- player->WarpHistory.push_back(warps[i].WarpID);
- for (int k = 0; k < player->WarpHistory.size(); k++)
- {
- if (player->WarpHistory[k] != player->TargetWarpSequence[k])
- {
- cleared = false;
- player->WarpHistory.clear();
- break;
- }
- }
- if (player->WarpHistory.size() != player->TargetWarpSequence.size())
- cleared = false;
- if (cleared)
- {
- override_map = true;
- }
- }
- if (override_map)
- {
- LoadLevel(map_override);
- }
- else
- {
- LoadLevel(warps[i].TargetLevel);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement