ZAPD Update (#2851)

* git subrepo clone --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/

subrepo:
  subdir:   "ZAPDTR"
  merged:   "6aa54a551"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR"
  branch:   "rebase2"
  commit:   "6aa54a551"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* git subrepo clone --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/

subrepo:
  subdir:   "ZAPDTR"
  merged:   "88b012240"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR"
  branch:   "rebase2"
  commit:   "88b012240"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Update (its broken)

* fix the enum

* git subrepo push --remote=C:/ZeldaStuff/ZAPDTR/ ZAPDTR

subrepo:
  subdir:   "ZAPDTR"
  merged:   "b7b6e1c82"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR/"
  branch:   "rebase2"
  commit:   "b7b6e1c82"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* New names for LUS actions

* git subrepo push --remote=C:/ZeldaStuff/ZAPDTR/ ZAPDTR

subrepo:
  subdir:   "ZAPDTR"
  merged:   "c5cfebeee"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR/"
  branch:   "rebase2"
  commit:   "c5cfebeee"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* git subrepo clone (merge) --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/

subrepo:
  subdir:   "ZAPDTR"
  merged:   "d5f4769b8"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR"
  branch:   "rebase2"
  commit:   "d5f4769b8"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Fix missing commands in the exporter.

* Cleanups.

* git subrepo pull --force --remote=https://github.com/harbourmasters/ZAPDTR --branch=master ZAPDTR

subrepo:
  subdir:   "ZAPDTR"
  merged:   "d4c35b90a"
upstream:
  origin:   "https://github.com/harbourmasters/ZAPDTR"
  branch:   "master"
  commit:   "d4c35b90a"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Add unordered_map include to fix MacOS

* fix string_view

* Update Main.cpp

* fix string view

* So close I can almost taste it

* So close

* Fix missed git marker.

* Fix surface types and

* Update ZFile.cpp

* Delete Jenkinsfile

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
This commit is contained in:
louist103 2023-05-07 19:58:50 -04:00 committed by GitHub
commit f31a841789
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
91 changed files with 4385 additions and 7506 deletions

View file

@ -77,8 +77,8 @@ void Ship::CollisionHeaderFactoryV0::ParseFileBinary(std::shared_ptr<BinaryReade
for (uint32_t i = 0; i < collisionHeader->surfaceTypesCount; i++) {
SurfaceType surfaceType;
surfaceType.data[1] = reader->ReadUInt32();
surfaceType.data[0] = reader->ReadUInt32();
surfaceType.data[1] = reader->ReadUInt32();
collisionHeader->surfaceTypes.push_back(surfaceType);
}

View file

@ -52,13 +52,12 @@ std::shared_ptr<Ship::File> ResourceMgr_LoadFile(const char* path) {
// Forward Declaration of function declared in OTRGlobals.cpp
std::shared_ptr<Ship::Resource> GetResourceByNameHandlingMQ(const char* path);
bool Scene_CommandSpawnList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandSpawnList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetStartPositionList* cmdStartPos = std::static_pointer_cast<Ship::SetStartPositionList>(cmd);
Ship::SetStartPositionList* cmdStartPos = (Ship::SetStartPositionList*)cmd;
ActorEntry* entries = (ActorEntry*)cmdStartPos->GetPointer();
play->linkActorEntry = &entries[play->setupEntranceList[play->curSpawn].spawn];;
play->linkActorEntry = &entries[play->setupEntranceList[play->curSpawn].spawn];
play->linkAgeOnLoad = ((void)0, gSaveContext.linkAge);
s16 linkObjectId = gLinkObjectIds[((void)0, gSaveContext.linkAge)];
@ -77,16 +76,14 @@ bool Scene_CommandActorList(PlayState* play, Ship::SceneCommand* cmd) {
return false;
}
bool Scene_CommandUnused2(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandUnused2(PlayState* play, Ship::SceneCommand* cmd) {
// OTRTODO: Do we need to implement this?
//play->unk_11DFC = SEGMENTED_TO_VIRTUAL(cmd->unused02.segment);
// play->unk_11DFC = SEGMENTED_TO_VIRTUAL(cmd->unused02.segment);
return false;
}
bool Scene_CommandCollisionHeader(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandCollisionHeader(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetCollisionHeader* cmdCol = std::static_pointer_cast<Ship::SetCollisionHeader>(cmd);
Ship::SetCollisionHeader* cmdCol = (Ship::SetCollisionHeader*)cmd;
BgCheck_Allocate(&play->colCtx, play, (CollisionHeader*)cmdCol->GetPointer());
@ -94,8 +91,7 @@ bool Scene_CommandCollisionHeader(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandRoomList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandRoomList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetRoomList* cmdRoomList = std::static_pointer_cast<Ship::SetRoomList>(cmd);
Ship::SetRoomList* cmdRoomList = (Ship::SetRoomList*)cmd;
@ -105,8 +101,7 @@ bool Scene_CommandRoomList(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandEntranceList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandEntranceList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetEntranceList* otrEntrance = std::static_pointer_cast<Ship::SetEntranceList>(cmd);
Ship::SetEntranceList* otrEntrance = (Ship::SetEntranceList*)cmd;
play->setupEntranceList = (EntranceEntry*)otrEntrance->GetPointer();
@ -114,8 +109,7 @@ bool Scene_CommandEntranceList(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandSpecialFiles(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandSpecialFiles(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetSpecialObjects* specialCmd = std::static_pointer_cast<Ship::SetSpecialObjects>(cmd);
Ship::SetSpecialObjects* specialCmd = (Ship::SetSpecialObjects*)cmd;
@ -124,15 +118,15 @@ bool Scene_CommandSpecialFiles(PlayState* play, Ship::SceneCommand* cmd)
}
if (specialCmd->specialObjects.elfMessage != 0) {
auto res = (Ship::Blob*)OTRPlay_LoadFile(play, sNaviMsgFiles[specialCmd->specialObjects.elfMessage - 1].fileName);
auto res =
(Ship::Blob*)OTRPlay_LoadFile(play, sNaviMsgFiles[specialCmd->specialObjects.elfMessage - 1].fileName);
play->cUpElfMsgs = (ElfMessage*)res->Data.data();
}
return false;
}
bool Scene_CommandRoomBehavior(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandRoomBehavior(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetRoomBehavior* cmdRoom = std::static_pointer_cast<Ship::SetRoomBehavior>(cmd);
Ship::SetRoomBehavior* cmdRoom = (Ship::SetRoomBehavior*)cmd;
@ -144,8 +138,7 @@ bool Scene_CommandRoomBehavior(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandMeshHeader(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandMeshHeader(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetMesh* otrMesh = static_pointer_cast<Ship::SetMesh>(cmd);
Ship::SetMesh* otrMesh = (Ship::SetMesh*)cmd;
play->roomCtx.curRoom.meshHeader = (MeshHeader*)otrMesh->GetPointer();
@ -153,10 +146,9 @@ bool Scene_CommandMeshHeader(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
extern "C" void* func_800982FC(ObjectContext * objectCtx, s32 bankIndex, s16 objectId);
extern "C" void* func_800982FC(ObjectContext* objectCtx, s32 bankIndex, s16 objectId);
bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetObjectList* cmdObj = static_pointer_cast<Ship::SetObjectList>(cmd);
Ship::SetObjectList* cmdObj = (Ship::SetObjectList*)cmd;
@ -166,12 +158,12 @@ bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd)
ObjectStatus* status;
ObjectStatus* status2;
ObjectStatus* firstStatus;
//s16* objectEntry = SEGMENTED_TO_VIRTUAL(cmd->objectList.segment);
// s16* objectEntry = SEGMENTED_TO_VIRTUAL(cmd->objectList.segment);
s16* objectEntry = (s16*)cmdObj->GetPointer();
void* nextPtr;
k = 0;
//i = play->objectCtx.unk_09;
// i = play->objectCtx.unk_09;
i = 0;
firstStatus = &play->objectCtx.status[0];
status = &play->objectCtx.status[i];
@ -218,21 +210,18 @@ bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandLightList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandLightList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetLightList* cmdLight = static_pointer_cast<Ship::SetLightList>(cmd);
Ship::SetLightList* cmdLight = (Ship::SetLightList*)cmd;
for (size_t i = 0; i < cmdLight->lightList.size(); i++)
{
for (size_t i = 0; i < cmdLight->lightList.size(); i++) {
LightContext_InsertLight(play, &play->lightCtx, (LightInfo*)&cmdLight->lightList[i]);
}
return false;
}
bool Scene_CommandPathList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandPathList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetPathways* cmdPath = static_pointer_cast<Ship::SetPathways>(cmd);
Ship::SetPathways* cmdPath = (Ship::SetPathways*)cmd;
play->setupPathList = (Path*)cmdPath->paths[0]->GetPointer();
@ -250,20 +239,18 @@ bool Scene_CommandTransitionActorList(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
//void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx) {
// void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx) {
// transiActorCtx->numActors = 0;
//}
bool Scene_CommandLightSettingsList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandLightSettingsList(PlayState* play, Ship::SceneCommand* cmd) {
play->envCtx.lightSettingsList = (EnvLightSettings*)cmd->GetPointer();
return false;
}
// Scene Command 0x11: Skybox Settings
bool Scene_CommandSkyboxSettings(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandSkyboxSettings(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetSkyboxSettings* cmdSky = static_pointer_cast<Ship::SetSkyboxSettings>(cmd);
Ship::SetSkyboxSettings* cmdSky = (Ship::SetSkyboxSettings*)cmd;
@ -274,8 +261,7 @@ bool Scene_CommandSkyboxSettings(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandSkyboxDisables(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandSkyboxDisables(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetSkyboxModifier* cmdSky = static_pointer_cast<Ship::SetSkyboxModifier>(cmd);
Ship::SetSkyboxModifier* cmdSky = (Ship::SetSkyboxModifier*)cmd;
@ -285,8 +271,7 @@ bool Scene_CommandSkyboxDisables(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetTimeSettings* cmdTime = static_pointer_cast<Ship::SetTimeSettings>(cmd);
Ship::SetTimeSettings* cmdTime = (Ship::SetTimeSettings*)cmd;
@ -297,8 +282,7 @@ bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd)
if (cmdTime->settings.timeIncrement != 0xFF) {
play->envCtx.timeIncrement = cmdTime->settings.timeIncrement;
}
else {
} else {
play->envCtx.timeIncrement = 0;
}
@ -315,14 +299,11 @@ bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd)
gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime);
if ((gSaveContext.skyboxTime >= 0x2AAC) && (gSaveContext.skyboxTime < 0x4555)) {
gSaveContext.skyboxTime = 0x3556;
}
else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) {
} else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) {
gSaveContext.skyboxTime = 0x5556;
}
else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) {
} else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) {
gSaveContext.skyboxTime = 0xB556;
}
else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) {
} else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) {
gSaveContext.skyboxTime = 0xCAAC;
}
}
@ -343,8 +324,7 @@ bool Scene_CommandWindSettings(PlayState* play, Ship::SceneCommand* cmd) {
return false;
}
bool Scene_CommandExitList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandExitList(PlayState* play, Ship::SceneCommand* cmd) {
play->setupExitList = (s16*)cmd->GetPointer();
return false;
@ -368,8 +348,7 @@ bool Scene_CommandSoundSettings(PlayState* play, Ship::SceneCommand* cmd) {
return false;
}
bool Scene_CommandEchoSettings(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandEchoSettings(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetEchoSettings* cmdEcho = static_pointer_cast<Ship::SetEchoSettings>(cmd);
Ship::SetEchoSettings* cmdEcho = (Ship::SetEchoSettings*)cmd;
@ -378,41 +357,36 @@ bool Scene_CommandEchoSettings(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandAlternateHeaderList(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandAlternateHeaderList(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetAlternateHeaders* cmdHeaders = static_pointer_cast<Ship::SetAlternateHeaders>(cmd);
Ship::SetAlternateHeaders* cmdHeaders = (Ship::SetAlternateHeaders*)cmd;
//s32 pad;
//SceneCmd* altHeader;
// s32 pad;
// SceneCmd* altHeader;
//osSyncPrintf("\n[ZU]sceneset age =[%X]", ((void)0, gSaveContext.linkAge));
//osSyncPrintf("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.cutsceneIndex));
//osSyncPrintf("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneSetupIndex));
// osSyncPrintf("\n[ZU]sceneset age =[%X]", ((void)0, gSaveContext.linkAge));
// osSyncPrintf("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.cutsceneIndex));
// osSyncPrintf("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneSetupIndex));
if (gSaveContext.sceneSetupIndex != 0)
{
Ship::Scene* desiredHeader = std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 1]).get();
if (gSaveContext.sceneSetupIndex != 0) {
Ship::Scene* desiredHeader =
std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 1]).get();
if (desiredHeader != nullptr)
{
if (desiredHeader != nullptr) {
OTRScene_ExecuteCommands(play, desiredHeader);
return true;
}
else
{
} else {
// "Coughh! There is no specified dataaaaa!"
osSyncPrintf("\nげぼはっ! 指定されたデータがないでええっす!");
if (gSaveContext.sceneSetupIndex == 3)
{
Ship::Scene* desiredHeader = std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 2]).get();
if (gSaveContext.sceneSetupIndex == 3) {
Ship::Scene* desiredHeader =
std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 2]).get();
// "Using adult day data there!"
osSyncPrintf("\nそこで、大人の昼データを使用するでええっす!!");
if (desiredHeader != nullptr)
{
if (desiredHeader != nullptr) {
OTRScene_ExecuteCommands(play, desiredHeader);
return true;
}
@ -422,20 +396,18 @@ bool Scene_CommandAlternateHeaderList(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool Scene_CommandCutsceneData(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandCutsceneData(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetCutscenes* cmdCS = std::static_pointer_cast<Ship::SetCutscenes>(cmd);
Ship::SetCutscenes* cmdCS = (Ship::SetCutscenes*)cmd;
play->csCtx.segment = cmdCS->cutscene->commands.data();
//osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.segment);
// osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.segment);
return false;
}
// Camera & World Map Area
bool Scene_CommandMiscSettings(PlayState* play, Ship::SceneCommand* cmd)
{
bool Scene_CommandMiscSettings(PlayState* play, Ship::SceneCommand* cmd) {
// Ship::SetCameraSettings* cmdCam = std::static_pointer_cast<Ship::SetCameraSettings>(cmd);
Ship::SetCameraSettings* cmdCam = (Ship::SetCameraSettings*)cmd;
@ -459,8 +431,7 @@ bool Scene_CommandMiscSettings(PlayState* play, Ship::SceneCommand* cmd)
return false;
}
bool (*sceneCommands[])(PlayState*, Ship::SceneCommand*) =
{
bool (*sceneCommands[])(PlayState*, Ship::SceneCommand*) = {
Scene_CommandSpawnList, // SCENE_CMD_ID_SPAWN_LIST
Scene_CommandActorList, // SCENE_CMD_ID_ACTOR_LIST
Scene_CommandUnused2, // SCENE_CMD_ID_UNUSED_2
@ -489,20 +460,17 @@ bool (*sceneCommands[])(PlayState*, Ship::SceneCommand*) =
Scene_CommandMiscSettings, // SCENE_CMD_ID_MISC_SETTINGS
};
s32 OTRScene_ExecuteCommands(PlayState* play, Ship::Scene* scene)
{
s32 OTRScene_ExecuteCommands(PlayState* play, Ship::Scene* scene) {
Ship::SceneCommandID cmdCode;
for (int i = 0; i < scene->commands.size(); i++)
{
for (int i = 0; i < scene->commands.size(); i++) {
auto sceneCmd = scene->commands[i];
if (sceneCmd == nullptr) // UH OH
continue;
cmdCode = sceneCmd->cmdId;
//osSyncPrintf("*** Scene_Word = { code=%d, data1=%02x, data2=%04x } ***\n", cmdCode, sceneCmd->base.data1, sceneCmd->base.data2);
// osSyncPrintf("*** Scene_Word = { code=%d, data1=%02x, data2=%04x } ***\n", cmdCode, sceneCmd->base.data1, sceneCmd->base.data2);
if ((int)cmdCode == 0x14) {
break;
@ -511,23 +479,21 @@ s32 OTRScene_ExecuteCommands(PlayState* play, Ship::Scene* scene)
if ((int)cmdCode <= 0x19) {
if (sceneCommands[(int)cmdCode](play, sceneCmd.get()))
break;
}
else {
} else {
osSyncPrintf(VT_FGCOL(RED));
osSyncPrintf("code の値が異常です\n"); // "code variable is abnormal"
osSyncPrintf(VT_RST);
}
//sceneCmd++;
// sceneCmd++;
}
return 0;
}
extern "C" s32 OTRfunc_800973FC(PlayState* play, RoomContext* roomCtx) {
if (roomCtx->status == 1) {
//if (!osRecvMesg(&roomCtx->loadQueue, NULL, OS_MESG_NOBLOCK)) {
if (1)
{
// if (!osRecvMesg(&roomCtx->loadQueue, NULL, OS_MESG_NOBLOCK)) {
if (1) {
roomCtx->status = 0;
roomCtx->curRoom.segment = roomCtx->unk_34;
gSegments[3] = VIRTUAL_TO_PHYSICAL(roomCtx->unk_34);
@ -560,13 +526,15 @@ extern "C" s32 OTRfunc_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomN
return 0; // UH OH
size = play->roomList[roomNum].vromEnd - play->roomList[roomNum].vromStart;
roomCtx->unk_34 = (void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->unk_30] - ((size + 8) * roomCtx->unk_30 + 7));
roomCtx->unk_34 =
(void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->unk_30] - ((size + 8) * roomCtx->unk_30 + 7));
osCreateMesgQueue(&roomCtx->loadQueue, &roomCtx->loadMsg, 1);
//DmaMgr_SendRequest2(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0,
// DmaMgr_SendRequest2(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0,
//&roomCtx->loadQueue, NULL, __FILE__, __LINE__);
auto roomData = std::static_pointer_cast<Ship::Scene>(GetResourceByNameHandlingMQ(play->roomList[roomNum].fileName));
auto roomData =
std::static_pointer_cast<Ship::Scene>(GetResourceByNameHandlingMQ(play->roomList[roomNum].fileName));
roomCtx->status = 1;
roomCtx->roomToLoad = roomData.get();