diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-06-09 11:55:15 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-09 01:55:15 -0700 |
| commit | f17cf7f6f118367d59903b0018a532e3fa32eb6a (patch) | |
| tree | 30d4ba6c783d868433a3998683d888e8a7db7e0c /src/d/map/d_map_path_dmap.cpp | |
| parent | 98582af6d2999108c2bce482f1a5b91bbc4ac5fa (diff) | |
JASSeqCtrl OK + misc functions (#346)
* JASSeqCtrl OK + misc functions
* Work on JASAudioThread
Diffstat (limited to 'src/d/map/d_map_path_dmap.cpp')
| -rw-r--r-- | src/d/map/d_map_path_dmap.cpp | 84 |
1 files changed, 49 insertions, 35 deletions
diff --git a/src/d/map/d_map_path_dmap.cpp b/src/d/map/d_map_path_dmap.cpp index 1e8d53c23d..170d86a3e2 100644 --- a/src/d/map/d_map_path_dmap.cpp +++ b/src/d/map/d_map_path_dmap.cpp @@ -301,23 +301,21 @@ Vec dMapInfo_n::getMapRestartPos() { /* 8003F0F8-8003F19C 039A38 00A4+00 1/1 1/1 0/0 .text getMapRestartAngleY__10dMapInfo_nFv */ -// small regalloc -#ifdef NONMATCHING s16 dMapInfo_n::getMapRestartAngleY() { int angle = dComIfGs_getRestartRoomAngleY(); const dTres_c::typeGroupData_c* icon_data = getConstRestartIconPointer(); if (icon_data != NULL) { - int icon_angle = icon_data->getAngleY(); - bool tmp = icon_angle > 0; + angle = icon_data->getAngleY(); + bool tmp = angle > 0; if (tmp) { - icon_angle = -icon_angle; + angle = -angle; } - angle = icon_angle * 0x0100; + angle = angle * 0x0100; if (tmp) { - angle = icon_angle * -0x0100; + angle = -angle; } } @@ -329,16 +327,6 @@ s16 dMapInfo_n::getMapRestartAngleY() { return angle; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s16 dMapInfo_n::getMapRestartAngleY() { - nofralloc -#include "asm/d/map/d_map_path_dmap/getMapRestartAngleY__10dMapInfo_nFv.s" -} -#pragma pop -#endif /* 8003F19C-8003F1F4 039ADC 0058+00 0/0 1/1 0/0 .text getRoomCenter__10dMapInfo_nFiPfPf */ @@ -896,24 +884,49 @@ asm int renderingDAmap_c::getNextDrawRoomNo(int param_0) { #endif /* 80040134-800401E8 03AA74 00B4+00 3/0 3/0 0/0 .text getFirstRoomPointer__16renderingDAmap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dDrawPath_c::room_class* renderingDAmap_c::getFirstRoomPointer() { - nofralloc -#include "asm/d/map/d_map_path_dmap/getFirstRoomPointer__16renderingDAmap_cFv.s" +dDrawPath_c::room_class* renderingDAmap_c::getFirstRoomPointer() { + dDrawPath_c::room_class* pRoomClass = NULL; + mRoomNo = getFirstDrawRoomNo(); + if (mRoomNo >= 0) { + field_0x28 = getFirstDrawLayerNo(); + + pRoomClass = dMpath_c::getRoomPointer(field_0x28, mRoomNo); + if (pRoomClass == NULL) { + pRoomClass = getNextRoomPointer(); + } + } + + if(pRoomClass != NULL) { + setSingleRoomSetting(); + } + return pRoomClass; } -#pragma pop /* 800401E8-800402C0 03AB28 00D8+00 3/0 3/0 0/0 .text getNextRoomPointer__16renderingDAmap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dDrawPath_c::room_class* renderingDAmap_c::getNextRoomPointer() { - nofralloc -#include "asm/d/map/d_map_path_dmap/getNextRoomPointer__16renderingDAmap_cFv.s" +dDrawPath_c::room_class* renderingDAmap_c::getNextRoomPointer() { + dDrawPath_c::room_class* pRoomClass = NULL; + bool bVar1 = false; + do { + mRoomNo = getNextDrawRoomNo(mRoomNo); + if (mRoomNo < 0) { + field_0x28 = getNextDrawLayerNo(field_0x28); + if (field_0x28 < 0) { + bVar1 = true; + } else { + mRoomNo = getFirstDrawRoomNo(); + } + } + + if (!bVar1) { + pRoomClass = dMpath_c::getRoomPointer(field_0x28, mRoomNo); + } + } while(pRoomClass == NULL && !bVar1); + + if (pRoomClass != NULL) { + setSingleRoomSetting(); + } + return pRoomClass; } -#pragma pop /* 800402C0-800402E0 03AC00 0020+00 3/0 3/0 0/0 .text isDrawPath__16renderingDAmap_cFv */ bool renderingDAmap_c::isDrawPath() { @@ -921,8 +934,8 @@ bool renderingDAmap_c::isDrawPath() { } /* 800402E0-800402E8 03AC20 0008+00 3/0 3/0 0/0 .text getFirstDrawLayerNo__16renderingDAmap_cFv */ -bool renderingDAmap_c::getFirstDrawLayerNo() { - return false; +int renderingDAmap_c::getFirstDrawLayerNo() { + return 0; } /* 800402E8-800402FC 03AC28 0014+00 3/0 3/0 0/0 .text getNextDrawLayerNo__16renderingDAmap_cFi */ @@ -1232,8 +1245,9 @@ void renderingPlusDoorAndCursor_c::drawTreasure() { setTevSettingIntensityTextureToCI(); for (int i = 0; i < 4; i++) { + dTres_c::typeGroupData_c* typeGroupData_p; u8 tmp = l_treasureDispList_4524[i].field_0x0; - dTres_c::typeGroupData_c* typeGroupData_p = getFirstData(tmp); + typeGroupData_p = getFirstData(tmp); int group_num = getIconGroupNumber(tmp); if (group_num != 0) { @@ -1256,7 +1270,7 @@ void renderingPlusDoorAndCursor_c::drawTreasure() { GXSetTevColor(GX_TEVREG2, sp18); for (int j = 0; j < group_num && typeGroupData_p != NULL; j++) { - Vec* icon_pos = getIconPosition(typeGroupData_p); + const Vec* icon_pos = getIconPosition(typeGroupData_p); if (tmp == 0) { if (mRoomNoSingle != typeGroupData_p->getRoomNo()) { |
