/
trilirium
/
Pacman
Обзор
Документация
Войти
/
trilirium
/
Pacman
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PlayingState.cpp
118 строк
4 KB
Trilirium
first commit
19 июн 2026, 11:07
19 июн 2026, 11:07
d44591e
Код
Авторство
О чём код?
// PlayingState.cpp // ///////////////////////////////////////////////////////////////////////////// #include <cassert> #include "FirstCutscene.h" #include "SecondCutscene.h" #include "ThirdCutscene.h" #include "Game.h" #include "Writer.h" #include "CommonCutscene.h" #include "PlayingState.h" #include "PlayingSubstates.h" using namespace Puckman; GameSubstate *PlayingState::substates[0x26]; GameState *PlayingState::cutScene[0x15]; GameState *PlayingState::cutScenes[4]; ///////////////////////////////////////////////////////////////////////////// // initialization and cleanup ///////////////////////////////////////////////////////////////////////////// PlayingState::PlayingState() { substate = 0; substates[0x00] = new PlayingInitPlayerLevelDataSubstate(); substates[0x01] = new PlayingInitRemainingDataSubstate(); substates[0x02] = 0; substates[0x03] = new PlayingMainGameLoopSubstate(); substates[0x04] = new PlayingPacmanDeadSubstate(); substates[0x05] = 0; substates[0x06] = new PlayingCheckForGameOverSubstate(); substates[0x07] = 0; substates[0x08] = new PlayingInitDemoSubstate(); substates[0x09] = new PlayingInitLevelAndDifficultySubstate(); substates[0x0a] = 0; substates[0x0b] = new PlayingContinueLevelSubstate(); substates[0x0c] = new PlayingStopSoundAndWaitSubstate(); substates[0x0d] = 0; substates[0x0e] = new PlayingChangeCRAMSubstate(); substates[0x0f] = 0; substates[0x10] = new PlayingRestoreCRAMSubstate(); substates[0x11] = 0; substates[0x12] = new PlayingChangeCRAMSubstate(); substates[0x13] = 0; substates[0x14] = new PlayingRestoreCRAMSubstate(); substates[0x15] = 0; substates[0x16] = new PlayingChangeCRAMSubstate(); substates[0x17] = 0; substates[0x18] = new PlayingRestoreCRAMSubstate(); substates[0x19] = 0; substates[0x1a] = new PlayingChangeCRAMSubstate(); substates[0x1b] = 0; substates[0x1c] = new PlayingRestoreCRAMSubstate(); substates[0x1d] = 0; substates[0x1e] = new PlayingInitCutsceneSubstate(); substates[0x1f] = 0; substates[0x20] = new PlayingCutsceneSubstate(); substates[0x21] = 0; substates[0x22] = new PlayingPrepareNextLevelDataSubstate(); substates[0x23] = new PlayingInitLevelAndDifficultySubstate(); substates[0x24] = 0; substates[0x25] = new PlayingContinueLevelSubstate(); // cutscene states cutScenes[0] = new NopCutsceneState(); cutScenes[1] = new FirstCutsceneState(); cutScenes[2] = new SecondCutsceneState(); cutScenes[3] = new ThirdCutsceneState(); cutScene[0x00] = cutScenes[0]; cutScene[0x01] = cutScenes[1]; cutScene[0x02] = cutScenes[0]; cutScene[0x03] = cutScenes[0]; cutScene[0x04] = cutScenes[2]; cutScene[0x05] = cutScenes[0]; cutScene[0x06] = cutScenes[0]; cutScene[0x07] = cutScenes[0]; cutScene[0x08] = cutScenes[3]; cutScene[0x09] = cutScenes[0]; cutScene[0x0a] = cutScenes[0]; cutScene[0x0b] = cutScenes[0]; cutScene[0x0c] = cutScenes[3]; cutScene[0x0d] = cutScenes[0]; cutScene[0x0e] = cutScenes[0]; cutScene[0x0f] = cutScenes[0]; cutScene[0x10] = cutScenes[3]; cutScene[0x11] = cutScenes[0]; cutScene[0x12] = cutScenes[0]; cutScene[0x13] = cutScenes[0]; cutScene[0x14] = cutScenes[0]; } PlayingState::~PlayingState() { // delete cutscenes for (int i = 0; i < 4; i++){ delete cutScenes[i]; } // delete playing substates for (int i = 0; i < 0x26; i++){ delete substates[i]; } } void PlayingState::run() { assert((substate >= 0) && (substate < 0x26)); // delegate the action to the substate if (substates[substate]){ substates[substate]->run(); } }