diff options
Diffstat (limited to 'ZAPD/ZRoom/Commands/SetRoomBehavior.cpp')
| -rw-r--r-- | ZAPD/ZRoom/Commands/SetRoomBehavior.cpp | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp b/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp index eb19073..d667328 100644 --- a/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp +++ b/ZAPD/ZRoom/Commands/SetRoomBehavior.cpp @@ -1,20 +1,41 @@ #include "SetRoomBehavior.h" -#include "../../BitConverter.h" -#include "../../StringHelper.h" +#include "BitConverter.h" +#include "Globals.h" +#include "StringHelper.h" -SetRoomBehavior::SetRoomBehavior(ZRoom* nZRoom, std::vector<uint8_t> rawData, uint32_t rawDataIndex) - : ZRoomCommand(nZRoom, rawData, rawDataIndex) +SetRoomBehavior::SetRoomBehavior(ZFile* nParent) : ZRoomCommand(nParent) { - gameplayFlags = rawData[rawDataIndex + 0x01]; - gameplayFlags2 = BitConverter::ToInt32BE(rawData, rawDataIndex + 0x04); } -std::string SetRoomBehavior::GenerateSourceCodePass1(std::string roomName, uint32_t baseAddress) +void SetRoomBehavior::ParseRawData() { - return StringHelper::Sprintf( - "%s 0x%02X, 0x%08X", ZRoomCommand::GenerateSourceCodePass1(roomName, baseAddress).c_str(), - gameplayFlags, gameplayFlags2); - ; + ZRoomCommand::ParseRawData(); + gameplayFlags = cmdArg1; + gameplayFlags2 = BitConverter::ToInt32BE(parent->GetRawData(), rawDataIndex + 0x04); + + currRoomUnk2 = gameplayFlags2 & 0xFF; + + currRoomUnk5 = showInvisActors = (gameplayFlags2 >> 8) & 1; + + msgCtxUnk = (gameplayFlags2 >> 10) & 1; + + enablePosLights = (gameplayFlags2 >> 11) & 1; + kankyoContextUnkE2 = (gameplayFlags2 >> 12) & 1; +} + +std::string SetRoomBehavior::GetBodySourceCode() const +{ + if (Globals::Instance->game == ZGame::MM_RETAIL) + { + std::string enableLights = StringHelper::BoolStr(enablePosLights); + return StringHelper::Sprintf("SCENE_CMD_ROOM_BEHAVIOR(0x%02X, 0x%02X, %i, %i, %s, %i)", + gameplayFlags, currRoomUnk2, currRoomUnk5, msgCtxUnk, + enableLights.c_str(), kankyoContextUnkE2); + } + std::string showInvisible = StringHelper::BoolStr(showInvisActors); + std::string disableWarps = StringHelper::BoolStr(msgCtxUnk); + return StringHelper::Sprintf("SCENE_CMD_ROOM_BEHAVIOR(0x%02X, 0x%02X, %s, %s)", gameplayFlags, + currRoomUnk2, showInvisible.c_str(), disableWarps.c_str()); } std::string SetRoomBehavior::GetCommandCName() const @@ -25,4 +46,4 @@ std::string SetRoomBehavior::GetCommandCName() const RoomCommand SetRoomBehavior::GetRoomCommand() const { return RoomCommand::SetRoomBehavior; -}
\ No newline at end of file +} |
