| 1 | #include "Sequence/GameSequenceInfo.h" |
|---|---|
| 2 | |
| 3 | #include "Library/Base/StringUtil.h" |
| 4 | #include "Library/LiveActor/ActorSceneInfo.h" |
| 5 | #include "Library/LiveActor/LiveActor.h" |
| 6 | |
| 7 | #include "System/GameDataHolder.h" |
| 8 | #include "System/GameDataHolderAccessor.h" |
| 9 | |
| 10 | GameSequenceInfo::GameSequenceInfo() { |
| 11 | init(); |
| 12 | } |
| 13 | |
| 14 | void GameSequenceInfo::init() { |
| 15 | mSceneStatus = SceneStatus_None; |
| 16 | mIsStatusBossBattle = false; |
| 17 | mIsStatusInvalidSave = false; |
| 18 | mIsWipeOpenEnd = true; |
| 19 | mShopStatus = ShopStatus_None; |
| 20 | } |
| 21 | |
| 22 | void GameSequenceInfo::resetSceneStatus() { |
| 23 | mSceneStatus = SceneStatus_None; |
| 24 | mIsStatusBossBattle = false; |
| 25 | mIsStatusInvalidSave = false; |
| 26 | } |
| 27 | |
| 28 | void GameSequenceInfo::setSceneStatusBossBattle() { |
| 29 | mSceneStatus = SceneStatus_BossBattle; |
| 30 | mIsStatusBossBattle = true; |
| 31 | } |
| 32 | |
| 33 | void GameSequenceInfo::setSceneStatusBossBattleEnd() { |
| 34 | resetSceneStatus(); |
| 35 | } |
| 36 | |
| 37 | void GameSequenceInfo::setSceneStatusBossBattleEndForPlayerAnim() { |
| 38 | mIsStatusBossBattle = false; |
| 39 | mIsStatusInvalidSave = true; |
| 40 | } |
| 41 | |
| 42 | void GameSequenceInfo::setSceneStatusInvalidSave() { |
| 43 | mIsStatusInvalidSave = true; |
| 44 | } |
| 45 | |
| 46 | bool GameSequenceInfo::isSceneStatusBossBattle() const { |
| 47 | return mSceneStatus == SceneStatus_BossBattle; |
| 48 | } |
| 49 | |
| 50 | bool GameSequenceInfo::isSceneStatusBossBattleForPlayerAnim() const { |
| 51 | return mIsStatusBossBattle; |
| 52 | } |
| 53 | |
| 54 | bool GameSequenceInfo::isSceneStatusInvalidSave() const { |
| 55 | return mIsStatusInvalidSave; |
| 56 | } |
| 57 | |
| 58 | bool GameSequenceInfo::isShopStatus(s32 shopStatus) const { |
| 59 | return mShopStatus == shopStatus; |
| 60 | } |
| 61 | |
| 62 | void GameSequenceInfo::setShopStatus(s32 shopStatus) { |
| 63 | mShopStatus = (ShopStatus)shopStatus; |
| 64 | } |
| 65 | |
| 66 | namespace rs { |
| 67 | void setSceneStatusBossBattle(const al::LiveActor* actor) { |
| 68 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 69 | ->getSequenceInfo() |
| 70 | ->setSceneStatusBossBattle(); |
| 71 | } |
| 72 | |
| 73 | void setSceneStatusBossBattleEnd(const al::LiveActor* actor) { |
| 74 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 75 | ->getSequenceInfo() |
| 76 | ->setSceneStatusBossBattleEnd(); |
| 77 | } |
| 78 | |
| 79 | void setSceneStatusBossBattleEndForPlayerAnim(const al::LiveActor* actor) { |
| 80 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 81 | ->getSequenceInfo() |
| 82 | ->setSceneStatusBossBattleEndForPlayerAnim(); |
| 83 | } |
| 84 | |
| 85 | bool isSceneStatusBossBattle(GameDataHolderAccessor accessor) { |
| 86 | return accessor->getSequenceInfo()->isSceneStatusBossBattle(); |
| 87 | } |
| 88 | |
| 89 | bool isSceneStatusBossBattleForPlayerAnim(const al::LiveActor* actor) { |
| 90 | return ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 91 | ->getSequenceInfo() |
| 92 | ->isSceneStatusBossBattleForPlayerAnim(); |
| 93 | } |
| 94 | |
| 95 | bool isSceneStatusInvalidSave(GameDataHolderAccessor accessor) { |
| 96 | return accessor->getSequenceInfo()->isSceneStatusInvalidSave(); |
| 97 | } |
| 98 | |
| 99 | void setSceneStatusInvalidSave(GameDataHolderAccessor accessor) { |
| 100 | accessor->getSequenceInfo()->setSceneStatusInvalidSave(); |
| 101 | } |
| 102 | |
| 103 | bool isInvalidSaveStage(const char* stageName) { |
| 104 | return al::isEqualString(str1: stageName, str2: "MoonWorldBasementStage") || |
| 105 | al::isEqualString(str1: stageName, str2: "SnowWorldLobby001Stage"); |
| 106 | } |
| 107 | |
| 108 | bool isWipeOpenEnd(const al::LiveActor* actor) { |
| 109 | return ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 110 | ->getSequenceInfo() |
| 111 | ->isWipeOpenEnd(); |
| 112 | } |
| 113 | |
| 114 | void endWipeOpen(const GameDataHolder* holder) { |
| 115 | holder->getSequenceInfo()->setWipeOpenEnd(true); |
| 116 | } |
| 117 | |
| 118 | void startWipeOpen(const GameDataHolder* holder) { |
| 119 | holder->getSequenceInfo()->setWipeOpenEnd(false); |
| 120 | } |
| 121 | |
| 122 | bool isShopStatusBuyItem(const al::LiveActor* actor) { |
| 123 | return isShopStatusBuyShine(actor) || isShopStatusBuyShineMany(actor) || |
| 124 | isShopStatusBuyMaxLifeUpItem(actor); |
| 125 | } |
| 126 | |
| 127 | bool isShopStatusBuyShine(const al::LiveActor* actor) { |
| 128 | return ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 129 | ->getSequenceInfo() |
| 130 | ->isShopStatus(shopStatus: GameSequenceInfo::ShopStatus_BuyShine); |
| 131 | } |
| 132 | |
| 133 | bool isShopStatusBuyShineMany(const al::LiveActor* actor) { |
| 134 | return ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 135 | ->getSequenceInfo() |
| 136 | ->isShopStatus(shopStatus: GameSequenceInfo::ShopStatus_BuyShineMany); |
| 137 | } |
| 138 | |
| 139 | bool isShopStatusBuyMaxLifeUpItem(const al::LiveActor* actor) { |
| 140 | return ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 141 | ->getSequenceInfo() |
| 142 | ->isShopStatus(shopStatus: GameSequenceInfo::ShopStatus_BuyMaxLifeUpItem); |
| 143 | } |
| 144 | |
| 145 | void setShopStatusBuyShine(const al::LiveActor* actor) { |
| 146 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 147 | ->getSequenceInfo() |
| 148 | ->setShopStatus(GameSequenceInfo::ShopStatus_BuyShine); |
| 149 | } |
| 150 | |
| 151 | void setShopStatusBuyShineMany(const al::LiveActor* actor) { |
| 152 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 153 | ->getSequenceInfo() |
| 154 | ->setShopStatus(GameSequenceInfo::ShopStatus_BuyShineMany); |
| 155 | } |
| 156 | |
| 157 | void setShopStatusBuyMaxLifeUpItem(const al::LiveActor* actor) { |
| 158 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 159 | ->getSequenceInfo() |
| 160 | ->setShopStatus(GameSequenceInfo::ShopStatus_BuyMaxLifeUpItem); |
| 161 | } |
| 162 | |
| 163 | void setShopStatusNone(const al::LiveActor* actor) { |
| 164 | ((GameDataHolder*)actor->getSceneInfo()->gameDataHolder) |
| 165 | ->getSequenceInfo() |
| 166 | ->setShopStatus(GameSequenceInfo::ShopStatus_None); |
| 167 | } |
| 168 | |
| 169 | } // namespace rs |
| 170 |