d_message OK (via dFlow_c)

This commit is contained in:
robojumper
2025-05-09 18:28:45 +02:00
parent 378c192697
commit 4c5dede891
39 changed files with 2038 additions and 219 deletions
+1 -1
View File
@@ -6,6 +6,7 @@
#include "d/a/d_a_player.h"
#include "d/col/c/c_cc_d.h"
#include "d/col/cc/d_cc_s.h"
#include "d/d_pouch.h"
#include "d/flag/sceneflag_manager.h"
#include "m/m_angle.h"
#include "toBeSorted/small_sound_mgr.h"
@@ -37,7 +38,6 @@ bool dTgReaction_c::createHeap() {
}
extern "C" bool isHeroMode();
extern "C" u32 adventurePouchCountItem(u32 itemId);
int dTgReaction_c::create() {
// Note the double _c here
+3 -3
View File
@@ -11,6 +11,7 @@
#include "d/col/c/c_bg_s_poly_info.h"
#include "d/col/cc/d_cc_d.h"
#include "d/col/cc/d_cc_s.h"
#include "d/d_pouch.h"
#include "d/d_room.h"
#include "d/d_stage.h"
#include "d/flag/sceneflag_manager.h"
@@ -1935,8 +1936,6 @@ void dAcTbox_c::finalizeState_LoadArchive() {}
extern "C" void fn_800298B0(u16 effectIndex, mVec3_c *, mAng3_c *, mVec3_c *, void *, void *, void *, void *);
extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_209_;
extern "C" const bool isPouchItem(u16);
extern "C" u8 adventurePouchFindItemSlot(ITEM_ID item);
extern "C" u16 findItemInItemCheck(ITEM_ID item);
extern "C" dAcItem_c *giveItem3(u16 item, s32);
void dAcTbox_c::initializeState_Open() {
@@ -1962,7 +1961,8 @@ void dAcTbox_c::initializeState_Open() {
}
fn_8026D140();
ITEM_ID itemId = mItemId != 0 ? (ITEM_ID)mItemId : ITEM_GODDESS_HARP;
if (isPouchItem(itemId) && adventurePouchFindItemSlot(ITEM_NONE) == 8 && findItemInItemCheck(ITEM_NONE) == 0x3C) {
if (isPouchItem(itemId) && adventurePouchFindItemSlot(ITEM_NONE) == POUCH_SLOT_NONE &&
itemCheckFindItemSlot(ITEM_NONE) == ITEM_CHECK_SLOT_NONE) {
setShouldCloseFlag();
}
dAcItem_c *item = giveItem3(itemId, -1);
+1256 -7
View File
File diff suppressed because it is too large Load Diff
+5 -6
View File
@@ -16,6 +16,7 @@
#include "toBeSorted/file_manager.h"
#include "toBeSorted/minigame_mgr.h"
#include "toBeSorted/music_mgrs.h"
#include "toBeSorted/unk_save_time.h"
#include <cstring>
@@ -232,7 +233,7 @@ void dScGame_c::clearSpawnInfo() {
}
extern "C" void processEventFlags();
void dScGame_c::triggerExit(s32 room, u8 exitIndex, s32 forcedNight, s32 forcedTrial) {
void dScGame_c::triggerExit(s32 room, u16 exitIndex, s32 forcedNight, s32 forcedTrial) {
processEventFlags();
// TODO
}
@@ -261,8 +262,6 @@ bool dScGame_c::isCurrentStage(const char *stage) {
}
extern "C" void fn_801BB9C0();
extern "C" void *lbl_80575688;
extern "C" void fn_801909A0(void *);
extern "C" void maybeResetSkykeepPuzzle(bool);
void dScGame_c::copySpawnNextToCurrent() {
@@ -271,7 +270,7 @@ void dScGame_c::copySpawnNextToCurrent() {
sDoSomethingWithFileAOnTransition = false;
}
if (std::strncmp(currentSpawnInfo.stageName, nextSpawnInfo.stageName, 2)) {
fn_801909A0(lbl_80575688);
SaveTimeRelated::GetInstance()->fn_801909A0();
}
currentSpawnInfo = nextSpawnInfo;
sCurrentLayer = currentSpawnInfo.layer;
@@ -283,13 +282,13 @@ void dScGame_c::actuallyTriggerEntrance(
u16 transitionFadeFrames, s8 field0x28
) {
s32 trial, night;
if (forcedTrial == 2) {
if (forcedTrial == SpawnInfo::RETAIN_TRIAL) {
trial = currentSpawnInfo.trial;
} else {
trial = forcedTrial;
}
if (forcedNight == 2) {
if (forcedNight == SpawnInfo::RETAIN_TOD) {
night = currentSpawnInfo.night;
} else {
night = forcedNight;
+4 -3
View File
@@ -16,6 +16,7 @@
#include "toBeSorted/file_manager.h"
#include "toBeSorted/music_mgrs.h"
#include "toBeSorted/reload_color_fader.h"
#include "toBeSorted/unk_save_time.h"
SPECIAL_BASE_PROFILE(TITLE, dScTitle_c, fProfile::TITLE, 0, 0);
@@ -39,14 +40,14 @@ static const char *sLayoutArcsToLoad[] = {
STATE_VIRTUAL_DEFINE(dScTitle_c, Stanby);
STATE_VIRTUAL_DEFINE(dScTitle_c, Action);
extern "C" void *lbl_80575688;
extern "C" void fn_801907F0(void *);
extern "C" void *lbl_805750D8;
extern "C" void fn_80052D50(void *);
dScTitle_c::dScTitle_c() {
sInstance = this;
mRelCtrl.set(sModulesToLoad, ARRAY_LENGTH(sModulesToLoad));
mLayoutCtrl.set(sLayoutArcsToLoad, ARRAY_LENGTH(sLayoutArcsToLoad));
fn_801907F0(lbl_80575688);
SaveTimeRelated::GetInstance()->fn_801907F0();
if (checkAllSaveFilesEmpty() == true) {
actuallyTriggerEntrance("F000", 0, 26, 55, 0, 0, 0, 15, -1);
} else {
+9
View File
@@ -0,0 +1,9 @@
#include "d/lyt/d_lyt_demo_dowsing.h"
#include "f/f_profile.h"
#include "s/s_State.hpp"
SPECIAL_BASE_PROFILE(LYT_DEMO_DOWSING, dLytDemoDowsing_c, fProfile::LYT_DEMO_DOWSING, 0x2AA, 0x6F9);
STATE_DEFINE(dLytDemoDowsing_c, Wait);
STATE_DEFINE(dLytDemoDowsing_c, Start);
+2 -2
View File
@@ -1564,8 +1564,8 @@ bool dLytMeterMain_c::execute() {
if (dMessage_c::getInstance()->getField_0x2FC() != 0) {
rupeePos = 3;
if (dLytMsgWindow_c::getInstance() != nullptr && (dLytMsgWindow_c::getInstance()->fn_800D7B40() == 0x9E02 ||
dLytMsgWindow_c::getInstance()->fn_800D7B40() == 0x768C)) {
if (dLytMsgWindow_c::getInstance() != nullptr && (dLytMsgWindow_c::getInstance()->fn_800D7B40() == 40450 ||
dLytMsgWindow_c::getInstance()->fn_800D7B40() == 30348)) {
s32 off = -(mHeart.getCurrentHealthCapacity() / 4 <= 10);
rupeePos = 6 + off;
}
+8 -10
View File
@@ -1,14 +1,12 @@
#include "d/lyt/meter/d_lyt_meter_rupy.h"
#include "c/c_math.h"
#include "d/a/d_a_item.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_meter_configuration.h"
#include "nw4r/math/math_types.h"
#include "toBeSorted/small_sound_mgr.h"
extern "C" s32 getRupeeCounter2();
extern "C" u32 getCurrentWalletCapacity2();
STATE_DEFINE(dLytMeterRupyStart_c, Wait);
STATE_DEFINE(dLytMeterRupyStart_c, Start);
@@ -239,7 +237,7 @@ void dLytMeterRupy_c::executeState_Out() {
field_0x8AB = 0;
if (field_0x8AE == 0 && hasChangeInRupees()) {
mDisplayedRupeeCount = getRupeeCounter2();
mDisplayedRupeeCount = dAcItem_c::getRupeeCounter();
updateDisplayedAmount(true);
}
@@ -290,7 +288,7 @@ bool dLytMeterRupy_c::build(d2d::ResAccIf_c *resAcc) {
mAnm[RUPY_ANIM_IN].setAnimEnable(false);
field_0x8AB = 0;
mDisplayedRupeeCount = getRupeeCounter2();
mDisplayedRupeeCount = dAcItem_c::getRupeeCounter();
field_0x890 = -1;
mBlinkDelay = cM::rndF(10.0f);
for (int i = 0; i < RUPY_NUM_DIGITS; i++) {
@@ -362,7 +360,7 @@ bool dLytMeterRupy_c::execute() {
bool isMax = false;
u32 current = mDisplayedRupeeCount;
u32 capacity = getCurrentWalletCapacity2();
u32 capacity = dAcItem_c::getCurrentWalletCapacity();
if (current != 0 && capacity == current) {
isMax = true;
};
@@ -375,7 +373,7 @@ bool dLytMeterRupy_c::execute() {
}
bool dLytMeterRupy_c::hasChangeInRupees() const {
s32 amount = getRupeeCounter2();
s32 amount = dAcItem_c::getRupeeCounter();
if (amount > 9999) {
amount = 9999;
} else if (amount < 0) {
@@ -385,7 +383,7 @@ bool dLytMeterRupy_c::hasChangeInRupees() const {
}
s32 dLytMeterRupy_c::getRupeeDifference() const {
return getRupeeCounter2() - mDisplayedRupeeCount;
return dAcItem_c::getRupeeCounter() - mDisplayedRupeeCount;
}
mVec3_c dLytMeterRupy_c::getLastVisibleDigitPosition() {
@@ -407,7 +405,7 @@ void dLytMeterRupy_c::setDigit(s32 index, s32 digit) {
}
bool dLytMeterRupy_c::updateDisplayedAmount(bool suppressSound) {
s32 amount = getRupeeCounter2();
s32 amount = dAcItem_c::getRupeeCounter();
if (amount > 9999) {
amount = 9999;
} else if (amount < 0) {
@@ -512,7 +510,7 @@ bool dLytMeterRupy_c::updateDisplayedAmount(bool suppressSound) {
mPrevDigits[1] = mDisplayedDigits[1];
mPrevDigits[2] = mDisplayedDigits[2];
mPrevDigits[3] = mDisplayedDigits[3];
} else if (field_0x8AD && amount == getCurrentWalletCapacity2()) {
} else if (field_0x8AD && amount == dAcItem_c::getCurrentWalletCapacity()) {
SmallSoundManager::GetInstance()->playSound(SE_S_RUPEE_MAX);
field_0x890 = 0;
field_0x8AD = 0;
+7 -7
View File
@@ -33,7 +33,7 @@
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/d_d3d.h"
#include "toBeSorted/event_manager.h"
#include "toBeSorted/global_fi_context.h"
#include "toBeSorted/fi_context.h"
#include "toBeSorted/lyt_related_floats.h"
#include "toBeSorted/music_mgrs.h"
#include "toBeSorted/other_sound_stuff.h"
@@ -89,8 +89,8 @@ bool dLytMsgWindow_c::build() {
mpTagProcessor = new dTagProcessor_c();
mpMsgWindowUnk = new TextWindowUnk(mpTagProcessor);
if (GLOBAL_FI_CONTEXT != nullptr) {
fn_8016C9F0(GLOBAL_FI_CONTEXT);
if (FiContext::GetInstance() != nullptr) {
FiContext::GetInstance()->resetField_0x3C();
}
mpWindowTalk = nullptr;
@@ -514,8 +514,8 @@ void dLytMsgWindow_c::executeState_WaitKeySelectQuestion() {
field_0x824 = 0;
mTextOptionSelection = selection;
field_0x1220 = 0;
if (GLOBAL_FI_CONTEXT != nullptr) {
doFiThing = GLOBAL_FI_CONTEXT->mDoSpecialFiMenuHandling;
if (FiContext::GetInstance() != nullptr) {
doFiThing = FiContext::GetInstance()->getDoSpecialFiMenuHandling();
}
if (doFiThing) {
@@ -714,10 +714,10 @@ bool dLytMsgWindow_c::draw() {
return true;
}
void dLytMsgWindow_c::setCurrentLabelName(const char *name, bool storeFile) {
bool dLytMsgWindow_c::setCurrentLabelName(const char *name, bool storeFile) {
// TODO
mName = name;
!std::strcmp(name, "FR_SIREN_04");
return !std::strcmp(name, "FR_SIREN_04");
}
bool dLytMsgWindow_c::isVisible() const {
+1 -2
View File
@@ -6,6 +6,7 @@
#include "d/a/d_a_item.h"
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/d_pouch.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
@@ -444,8 +445,6 @@ bool SpecialItemDropMgr::shouldTryExtraRupees(int specialItemId) {
return sDropTable.mList[specialItemId].mFlags & FLAG_EXTRA_RUPEES;
}
extern "C" bool adventurePouchCountItem(u32 itemId);
// 800c7d40
int SpecialItemDropMgr::giveSpecialDropItem(
int specialItemId, int roomid, mVec3_c *pos, int subtype, mAng rot, s32 unused