MCPcopy Create free account
hub / github.com/deathkiller/jazz2-native / ReceiveLevelCarryOver

Method ReceiveLevelCarryOver

Sources/Jazz2/Actors/Player.cpp:3386–3422  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3384 }
3385
3386 void Player::ReceiveLevelCarryOver(ExitType exitType, const PlayerCarryOver& carryOver)
3387 {
3388 _lives = (std::int32_t)carryOver.Lives;
3389 _score = carryOver.Score;
3390 _foodEaten = (std::int32_t)carryOver.FoodEaten;
3391 _foodEatenCheckpoint = _foodEaten;
3392 _currentWeapon = carryOver.CurrentWeapon;
3393
3394 std::memcpy(_gemsTotal, carryOver.Gems, sizeof(_gemsTotal));
3395 std::memcpy(_weaponAmmo, carryOver.Ammo, sizeof(_weaponAmmo));
3396 std::memcpy(_weaponAmmoCheckpoint, carryOver.Ammo, sizeof(_weaponAmmoCheckpoint));
3397 std::memcpy(_weaponUpgrades, carryOver.WeaponUpgrades, sizeof(_weaponUpgrades));
3398 std::memcpy(_weaponUpgradesCheckpoint, carryOver.WeaponUpgrades, sizeof(_weaponUpgradesCheckpoint));
3399
3400 _weaponAmmo[(std::int32_t)WeaponType::Blaster] = UINT16_MAX;
3401 _weaponAmmoCheckpoint[(std::int32_t)WeaponType::Blaster] = UINT16_MAX;
3402
3403 ExitType exitTypeMasked = (exitType & ExitType::TypeMask);
3404 if (exitTypeMasked == ExitType::Warp || exitTypeMasked == ExitType::Bonus || exitTypeMasked == ExitType::Boss) {
3405 // Use delayed spawning
3406 SetState(ActorState::ApplyGravitation, false);
3407 _renderer.setDrawEnabled(false);
3408 _lastExitType = exitType;
3409 _controllable = false;
3410 _controllableTimeout = ((exitType & ExitType::FastTransition) == ExitType::FastTransition ? 5.0f : 55.0f);
3411 } else if ((exitType & ExitType::Frozen) == ExitType::Frozen) {
3412 // Use instant spawning
3413 Freeze(100.0f);
3414 }
3415
3416 // Preload all weapons
3417 for (std::int32_t i = 0; i < std::int32_t(arraySize(_weaponAmmo)); i++) {
3418 if (_weaponAmmo[i] != 0) {
3419 PreloadMetadataAsync(String("Weapon/"_s + WeaponNames[i]));
3420 }
3421 }
3422 }
3423
3424 PlayerCarryOver Player::PrepareLevelCarryOver()
3425 {

Callers 2

SpawnPlayersMethod · 0.80
SpawnPlayersMethod · 0.80

Calls 3

setDrawEnabledMethod · 0.80
arraySizeFunction · 0.50
StringClass · 0.50

Tested by

no test coverage detected