mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-03 00:16:36 -04:00
Merge branch 'main' of https://github.com/TwilitRealm/dusk into randomizer
This commit is contained in:
Vendored
+1
-1
Submodule extern/aurora updated: 924a88cb1e...3b06e240a3
@@ -1439,6 +1439,7 @@ set(DUSK_FILES
|
||||
src/dusk/logging.cpp
|
||||
src/dusk/settings.cpp
|
||||
src/dusk/speedrun.cpp
|
||||
src/dusk/string.cpp
|
||||
src/dusk/stubs.cpp
|
||||
src/dusk/update_check.cpp
|
||||
src/dusk/update_check.hpp
|
||||
|
||||
@@ -77,7 +77,7 @@ private:
|
||||
#define PLAYER_CREATE_ANM_HEAP_F(heap, type, fmt, ...) \
|
||||
{ \
|
||||
char pcah_name_buf[32]; \
|
||||
sprintf(pcah_name_buf, fmt, ##__VA_ARGS__); \
|
||||
snprintf(pcah_name_buf, sizeof(pcah_name_buf), fmt, ##__VA_ARGS__); \
|
||||
(heap).createHeap(type, pcah_name_buf); \
|
||||
\
|
||||
}
|
||||
|
||||
+10
-12
@@ -444,8 +444,7 @@ public:
|
||||
/* 0x1C */ f32 mFovy;
|
||||
/* 0x20 */ f32 mBank;
|
||||
/* 0x24 */ fopAc_ac_c* mRelActor;
|
||||
/* 0x28 */ char mRelUseMask;
|
||||
/* 0x29 */ char field_0x29;
|
||||
/* 0x28 */ char mRelUseMask[4];
|
||||
/* 0x2C */ int mTimer;
|
||||
/* 0x30 */ bool field_0x30;
|
||||
/* 0x34 */ cXyz mBasePos;
|
||||
@@ -526,7 +525,7 @@ public:
|
||||
/* 0x3C */ fopAc_ac_c* field_0x3c;
|
||||
/* 0x40 */ fopAc_ac_c* field_0x40;
|
||||
/* 0x44 */ fpc_ProcID field_0x44;
|
||||
/* 0x48 */ char field_0x48;
|
||||
/* 0x48 */ char field_0x48[4];
|
||||
/* 0x4C */ int field_0x4c;
|
||||
};
|
||||
|
||||
@@ -541,11 +540,7 @@ public:
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 0x40 */ fopAc_ac_c* mRelActor;
|
||||
/* 0x44 */ fpc_ProcID mRelActorID;
|
||||
/* 0x48 */ char mRelUseMask;
|
||||
/* 0x49 */ char field_0x49;
|
||||
/* 0x4A */ char field_0x4a;
|
||||
/* 0x4B */ char field_0x4b;
|
||||
/* 0x4C */ u8 field_0x4c[4];
|
||||
/* 0x48 */ char mRelUseMask[8];
|
||||
/* 0x50 */ int mTimer;
|
||||
/* 0x54 */ int mTransType;
|
||||
/* 0x58 */ f32 mCushion;
|
||||
@@ -696,8 +691,7 @@ public:
|
||||
/* 0x24 */ f32* field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ fopAc_ac_c* mRelActor;
|
||||
/* 0x30 */ char mRelUseMask;
|
||||
/* 0x31 */ char field_0x31;
|
||||
/* 0x30 */ char mRelUseMask[4];
|
||||
/* 0x34 */ int mTimer;
|
||||
/* 0x38 */ int field_0x38;
|
||||
/* 0x3C */ int mChoice;
|
||||
@@ -780,8 +774,7 @@ public:
|
||||
/* 0xAC */ f32 field_0xac;
|
||||
/* 0xB0 */ fopAc_ac_c* mRelActor;
|
||||
/* 0xB4 */ fpc_ProcID mRelActorID;
|
||||
/* 0xB8 */ char mRelUseMask;
|
||||
/* 0xB9 */ char field_0xb9;
|
||||
/* 0xB8 */ char mRelUseMask[4];
|
||||
/* 0xBC */ f32 mCushion;
|
||||
/* 0xC0 */ u32 field_0xc0[6];
|
||||
};
|
||||
@@ -917,7 +910,12 @@ public:
|
||||
char* getEvStringPntData(char*, char*);
|
||||
char* getEvStringPntData(char*);
|
||||
bool getEvXyzData(cXyz*, char*, cXyz);
|
||||
#if TARGET_PC
|
||||
template<size_t N>
|
||||
bool getEvStringData(char (&)[N], char*, char*);
|
||||
#else
|
||||
bool getEvStringData(char*, char*, char*);
|
||||
#endif
|
||||
fopAc_ac_c* getEvActor(char*);
|
||||
fopAc_ac_c* getEvActor(char*, char*);
|
||||
bool pauseEvCamera();
|
||||
|
||||
@@ -1897,7 +1897,7 @@ inline u16 dComIfGs_getDeathCount() {
|
||||
}
|
||||
#endif
|
||||
|
||||
inline char* dComIfGs_getPlayerName() {
|
||||
inline TEXT_SPAN dComIfGs_getPlayerName() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().getPlayerName();
|
||||
}
|
||||
|
||||
@@ -1905,7 +1905,7 @@ inline void dComIfGs_setPlayerName(const char* i_name) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().setPlayerName(i_name);
|
||||
}
|
||||
|
||||
inline char* dComIfGs_getHorseName() {
|
||||
inline TEXT_SPAN dComIfGs_getHorseName() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().getHorseName();
|
||||
}
|
||||
|
||||
|
||||
@@ -46,10 +46,10 @@ private:
|
||||
/* 0x22 */ u8 field_0x22;
|
||||
/* 0x24 */ CPaneMgrAlpha* mDatBase;
|
||||
/* 0x28 */ CPaneMgrAlpha* mNoDatBase;
|
||||
/* 0x2C */ char* mPlayerName;
|
||||
/* 0x30 */ char* mSaveDate;
|
||||
/* 0x34 */ char* mPlayTime;
|
||||
/* 0x38 */ char* mSaveStatus;
|
||||
/* 0x2C */ TEXT_SPAN mPlayerName;
|
||||
/* 0x30 */ TEXT_SPAN mSaveDate;
|
||||
/* 0x34 */ TEXT_SPAN mPlayTime;
|
||||
/* 0x38 */ TEXT_SPAN mSaveStatus;
|
||||
};
|
||||
|
||||
typedef void (dFile_info_c::*warningFunc)(void);
|
||||
|
||||
@@ -565,7 +565,7 @@ public:
|
||||
/* 0x0130 */ int field_0x0130;
|
||||
/* 0x0134 */ int field_0x0134;
|
||||
/* 0x0138 */ CPaneMgrAlpha* mErrorMsgTxtPane[2];
|
||||
/* 0x0140 */ char* mErrorMsgStringPtr[2];
|
||||
/* 0x0140 */ TEXT_SPAN mErrorMsgStringPtr[2];
|
||||
/* 0x0148 */ u8 mErrorTxtDispIdx;
|
||||
/* 0x0149 */ u8 field_0x0149;
|
||||
/* 0x014A */ bool field_0x014a;
|
||||
@@ -609,7 +609,7 @@ public:
|
||||
/* 0x020A */ u8 mFadeTimer;
|
||||
/* 0x020B */ u8 field_0x020b;
|
||||
/* 0x020C */ CPaneMgrAlpha* mHeaderTxtPane[2];
|
||||
/* 0x0214 */ char* mHeaderStringPtr[2];
|
||||
/* 0x0214 */ TEXT_SPAN mHeaderStringPtr[2];
|
||||
/* 0x021C */ u8 mHeaderTxtDispIdx;
|
||||
/* 0x021D */ u8 field_0x021d;
|
||||
/* 0x021E */ u8 field_0x021e;
|
||||
@@ -626,7 +626,7 @@ public:
|
||||
/* 0x024B */ u8 field_0x024b;
|
||||
/* 0x024C */ u8 field_0x024c;
|
||||
/* 0x024B */ u8 field_0x024d[3];
|
||||
/* 0x0250 */ char* mModoruStringPtr;
|
||||
/* 0x0250 */ TEXT_SPAN mModoruStringPtr;
|
||||
/* 0x0254 */ STControl* stick;
|
||||
/* 0x0258 */ u8 mIsDataNew[3];
|
||||
/* 0x025B */ u8 mIsNoData[3];
|
||||
|
||||
@@ -313,7 +313,7 @@ private:
|
||||
/* 0x00B8 */ int field_0xb8;
|
||||
/* 0x00BC */ int field_0xbc;
|
||||
/* 0x00C0 */ CPaneMgrAlpha* mpErrTxtPane[2];
|
||||
/* 0x00C8 */ char* mpErrTxt[2];
|
||||
/* 0x00C8 */ TEXT_SPAN mpErrTxt[2];
|
||||
/* 0x00D0 */ u8 mErrTxtType;
|
||||
/* 0x00D1 */ u8 mErrTxtAnmComplete;
|
||||
/* 0x00D2 */ u8 field_0xd2;
|
||||
@@ -344,7 +344,7 @@ private:
|
||||
/* 0x0160 */ J2DAnmTevRegKey* field_0x160;
|
||||
/* 0x0164 */ int field_0x164;
|
||||
/* 0x0168 */ CPaneMgrAlpha* mpHeaderTxtPane[2];
|
||||
/* 0x0170 */ char* mpHeaderTxt[2];
|
||||
/* 0x0170 */ TEXT_SPAN mpHeaderTxt[2];
|
||||
/* 0x0178 */ u8 mHeaderTxtType; // 0: Select Menu 1: YesNo Menu
|
||||
/* 0x0179 */ u8 mHeaderAnmComplete;
|
||||
/* 0x017A */ u8 field_0x17a;
|
||||
|
||||
@@ -67,9 +67,9 @@ public:
|
||||
s16 decFloatingMessageTimer();
|
||||
void resetFloatingMessage();
|
||||
void decMsgKeyWaitTimer();
|
||||
void getString(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry);
|
||||
void getStringKana(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry);
|
||||
void getStringKanji(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry);
|
||||
void getString(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry);
|
||||
void getStringKana(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry);
|
||||
void getStringKanji(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry);
|
||||
f32 getStringLength(J2DTextBox* i_textbox, char* i_string);
|
||||
f32 getStringLength(JUTFont* i_font, f32 param_2, f32 param_3, char* i_string);
|
||||
void onDirectUseItem(int);
|
||||
@@ -348,15 +348,15 @@ inline CPaneMgr* dMeter2Info_getMeterItemPanePtr(s32 i_idx) {
|
||||
return g_meter2_info.getMeterItemPanePtr(i_idx);
|
||||
}
|
||||
|
||||
inline void dMeter2Info_getString(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
inline void dMeter2Info_getString(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
g_meter2_info.getString(i_stringID, o_string, i_msgEntry);
|
||||
}
|
||||
|
||||
inline void dMeter2Info_getStringKanji(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
inline void dMeter2Info_getStringKanji(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
g_meter2_info.getStringKanji(i_stringID, o_string, i_msgEntry);
|
||||
}
|
||||
|
||||
inline void dMeter2Info_getStringKana(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
inline void dMeter2Info_getStringKana(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
g_meter2_info.getStringKana(i_stringID, o_string, i_msgEntry);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "JSystem/JMessage/JMessage.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "dusk/endian.h"
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
#if REGION_JPN
|
||||
#define D_MSG_CLASS_PAGE_CNT_MAX 30
|
||||
@@ -67,7 +68,7 @@ struct jmessage_tReference : public JMessage::TReference {
|
||||
void pageSend();
|
||||
void selectMessage();
|
||||
void inputNumber();
|
||||
char* getWord(int);
|
||||
TEXT_SPAN getWord(int);
|
||||
void resetWord();
|
||||
void setCharactor(u16);
|
||||
void addCharactor(u16);
|
||||
@@ -228,11 +229,11 @@ struct jmessage_tReference : public JMessage::TReference {
|
||||
f32 getSelRubyCharSpace() { return mSelRubyCharSpace; }
|
||||
f32 getRubySize() { return mRubySize; }
|
||||
f32 getRubyCharSpace() { return mRubyCharSpace; }
|
||||
char* getSelTextPtr(int idx) { return mSelText[idx]; }
|
||||
char* getSelRubyPtr(int idx) { return mSelRuby[idx]; }
|
||||
char* getTextPtr() { return mText; }
|
||||
char* getTextSPtr() { return mTextS; }
|
||||
char* getRubyPtr() { return mRuby; }
|
||||
TEXT_SPAN getSelTextPtr(int idx) { return mSelText[idx]; }
|
||||
TEXT_SPAN getSelRubyPtr(int idx) { return mSelRuby[idx]; }
|
||||
TEXT_SPAN getTextPtr() { return mText; }
|
||||
TEXT_SPAN getTextSPtr() { return mTextS; }
|
||||
TEXT_SPAN getRubyPtr() { return mRuby; }
|
||||
u8 getSelectRubyFlag() { return mSelectRubyFlag; }
|
||||
f32 getSelTBoxWidth() { return mSelTBoxWidth; }
|
||||
u8 getSelectPos() { return mSelectPos; }
|
||||
@@ -463,7 +464,7 @@ struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
|
||||
f32 getLineLength(int);
|
||||
void do_strcat(char*, bool, bool, bool);
|
||||
void do_rubyset(void const*, u32);
|
||||
void do_rubystrcat(char*, char*, f32, f32);
|
||||
void do_rubystrcat(char*, TEXT_SPAN, f32, f32);
|
||||
void do_name1();
|
||||
void do_numset(s16);
|
||||
void push_word();
|
||||
|
||||
@@ -53,8 +53,8 @@ public:
|
||||
void demoMessageGroupLocal();
|
||||
void endFlowGroupLocal();
|
||||
void changeGroupLocal(s16);
|
||||
bool getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
|
||||
char*, char*, s16*);
|
||||
bool getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, TEXT_SPAN,
|
||||
TEXT_SPAN, TEXT_SPAN, s16*);
|
||||
bool isGetItemMessage();
|
||||
bool isKanbanMessage();
|
||||
bool isHowlMessage();
|
||||
@@ -121,7 +121,7 @@ public:
|
||||
static void endFlowGroup();
|
||||
static void changeGroup(s16);
|
||||
static bool getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
|
||||
char*, char*, char*, s16*);
|
||||
TEXT_SPAN, TEXT_SPAN, TEXT_SPAN, s16*);
|
||||
static void* getMsgDtPtr();
|
||||
static void setProcessID(fpc_ProcID);
|
||||
static msg_class* getActor();
|
||||
@@ -246,12 +246,12 @@ public:
|
||||
|
||||
static void setWord(const char* i_word);
|
||||
void setWordLocal(const char* i_word) {
|
||||
strcpy(mWord, i_word);
|
||||
SAFE_STRCPY(mWord, i_word);
|
||||
}
|
||||
|
||||
static void setSelectWord(int i_no, const char* i_word);
|
||||
void setSelectWordLocal(int i_no, const char* i_word) {
|
||||
strcpy(mSelectWord[i_no], i_word);
|
||||
SAFE_STRCPY(mSelectWord[i_no], i_word);
|
||||
}
|
||||
|
||||
jmessage_tSequenceProcessor* getSequenceProcessor() { return mpSeqProc; }
|
||||
@@ -426,8 +426,8 @@ inline void dMsgObject_setTalkActor(fopAc_ac_c* actor) {
|
||||
}
|
||||
|
||||
inline bool dMsgObject_getString(u32 i_msgId, J2DTextBox* i_tbox, J2DTextBox* i_rubyTbox,
|
||||
JUTFont* i_font, COutFont_c* i_outFont, char* o_text,
|
||||
char* o_ruby, char* o_textS, s16* param_8) {
|
||||
JUTFont* i_font, COutFont_c* i_outFont, TEXT_SPAN o_text,
|
||||
TEXT_SPAN o_ruby, TEXT_SPAN o_textS, s16* param_8) {
|
||||
return dMsgObject_getMsgObjectClass()->getString(i_msgId, i_tbox, i_rubyTbox, i_font, i_outFont, o_text, o_ruby,
|
||||
o_textS, param_8);
|
||||
}
|
||||
|
||||
@@ -20,12 +20,12 @@ public:
|
||||
f32 getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*,
|
||||
COutFont_c*, u8);
|
||||
u8 getPageMax(int);
|
||||
f32 getMessageLocal(u32, char*);
|
||||
f32 getMessageLocal(u32, TEXT_SPAN);
|
||||
|
||||
virtual f32 getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
|
||||
virtual f32 getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
|
||||
u8);
|
||||
virtual f32 getMessage(u32, char*);
|
||||
virtual f32 getMessage(u32, TEXT_SPAN);
|
||||
virtual void resetStringLocal(J2DTextBox*);
|
||||
virtual void drawOutFontLocal(J2DTextBox*, f32);
|
||||
virtual void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
class dMsgUnit_c {
|
||||
public:
|
||||
dMsgUnit_c();
|
||||
void setTag(int, int, char*, bool);
|
||||
void setTag(int, int, TEXT_SPAN, bool);
|
||||
|
||||
virtual ~dMsgUnit_c();
|
||||
};
|
||||
|
||||
extern dMsgUnit_c g_msg_unit;
|
||||
|
||||
inline void dMsgUnit_setTag(int param_0, int param_1, char* param_2) {
|
||||
inline void dMsgUnit_setTag(int param_0, int param_1, TEXT_SPAN param_2) {
|
||||
g_msg_unit.setTag(param_0, param_1, param_2, true);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -127,7 +127,7 @@ public:
|
||||
u8 isInputEnd() { return mIsInputEnd; }
|
||||
char* getInputStrPtr() { return mInputStr; }
|
||||
void hideIcon() { mSelIcon->setAlphaRate(0.0f); }
|
||||
void setNextNameStr(char* i_name) { strcpy(mNextNameStr,i_name); }
|
||||
void setNextNameStr(char* i_name) { SAFE_STRCPY(mNextNameStr,i_name); }
|
||||
void draw() { _draw(); }
|
||||
|
||||
private:
|
||||
@@ -140,9 +140,9 @@ private:
|
||||
/* 0x02C */ J2DAnmTextureSRTKey* mCursorTexKey;
|
||||
/* 0x030 */ int mCurTexAnmF;
|
||||
/* 0x034 */ CPaneMgrAlpha* mNameCursor[8];
|
||||
/* 0x054 */ char* mNameText[8];
|
||||
/* 0x054 */ TEXT_SPAN mNameText[8];
|
||||
/* 0x074 */ CPaneMgr* mMojiIcon[65];
|
||||
/* 0x178 */ char* mMojiText[65];
|
||||
/* 0x178 */ TEXT_SPAN mMojiText[65];
|
||||
/* 0x27C */ J2DPane* mMojiPane;
|
||||
/* 0x280 */ J2DPane* mMenuPane;
|
||||
/* 0x284 */ CPaneMgr* mMenuIcon[4];
|
||||
|
||||
+9
-5
@@ -516,21 +516,25 @@ public:
|
||||
}
|
||||
#if TARGET_PC
|
||||
u16 getDeathCount() const { return mDeathCount; }
|
||||
#endif
|
||||
TEXT_SPAN getPlayerName() const { return const_cast<char(&)[17]>(mPlayerName); }
|
||||
#else
|
||||
char* getPlayerName() const { return const_cast<char*>(mPlayerName); }
|
||||
#endif
|
||||
void setPlayerName(const char* i_name) {
|
||||
#if AVOID_UB
|
||||
strncpy(mPlayerName, i_name, sizeof(mPlayerName) - 1);
|
||||
mPlayerName[sizeof(mPlayerName) - 1] = '\0';
|
||||
dusk::SafeStringCopyTruncate(mPlayerName, i_name);
|
||||
#else
|
||||
strcpy(mPlayerName, i_name);
|
||||
#endif
|
||||
}
|
||||
#if TARGET_PC
|
||||
TEXT_SPAN getHorseName() const { return const_cast<char(&)[17]>(mHorseName); }
|
||||
#else
|
||||
char* getHorseName() const { return const_cast<char*>(mHorseName); }
|
||||
#endif
|
||||
void setHorseName(const char* i_name) {
|
||||
#if AVOID_UB
|
||||
strncpy(mHorseName, i_name, sizeof(mHorseName) - 1);
|
||||
mHorseName[sizeof(mHorseName) - 1] = '\0';
|
||||
dusk::SafeStringCopyTruncate(mHorseName, i_name);
|
||||
#else
|
||||
strcpy(mHorseName, i_name);
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -1225,7 +1225,7 @@ public:
|
||||
#endif
|
||||
}
|
||||
static JKRExpHeap* getMemoryBlockHeap(int i_no) { return mMemoryBlock[i_no]; }
|
||||
static char* getDemoArcName() { return mDemoArcName; }
|
||||
static TEXT_SPAN getDemoArcName() { return mDemoArcName; }
|
||||
static void offNoChangeRoom() { mNoChangeRoom = false; }
|
||||
static void onNoChangeRoom() { mNoChangeRoom = true; }
|
||||
|
||||
|
||||
+13
-1
@@ -15,6 +15,12 @@ enum class BloomMode : int {
|
||||
Dusk = 2,
|
||||
};
|
||||
|
||||
enum class DepthOfFieldMode : int {
|
||||
Off = 0,
|
||||
Classic = 1,
|
||||
Dusk = 2,
|
||||
};
|
||||
|
||||
enum class Resampler : int {
|
||||
Bilinear = 0,
|
||||
Area = 1,
|
||||
@@ -58,6 +64,12 @@ struct ConfigEnumRange<BloomMode> {
|
||||
static constexpr auto max = BloomMode::Dusk;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct ConfigEnumRange<DepthOfFieldMode> {
|
||||
static constexpr auto min = DepthOfFieldMode::Off;
|
||||
static constexpr auto max = DepthOfFieldMode::Dusk;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct ConfigEnumRange<Resampler> {
|
||||
static constexpr auto min = Resampler::Bilinear;
|
||||
@@ -160,13 +172,13 @@ struct UserSettings {
|
||||
// Graphics
|
||||
ConfigVar<BloomMode> bloomMode;
|
||||
ConfigVar<float> bloomMultiplier;
|
||||
ConfigVar<DepthOfFieldMode> depthOfFieldMode;
|
||||
ConfigVar<bool> disableWaterRefraction;
|
||||
ConfigVar<bool> enableTextureReplacements;
|
||||
ConfigVar<FrameInterpMode> enableFrameInterpolation;
|
||||
ConfigVar<int> internalResolutionScale;
|
||||
ConfigVar<int> shadowResolutionMultiplier;
|
||||
ConfigVar<Resampler> resampler;
|
||||
ConfigVar<bool> enableDepthOfField;
|
||||
ConfigVar<bool> enableMapBackground;
|
||||
ConfigVar<bool> disableCutscenePillarboxing;
|
||||
|
||||
|
||||
+98
-28
@@ -1,22 +1,55 @@
|
||||
#ifndef DUSK_STRING_HPP
|
||||
#define DUSK_STRING_HPP
|
||||
|
||||
#include "global.h"
|
||||
#include <cstring>
|
||||
#include <dolphin/os.h>
|
||||
#include <cstdarg>
|
||||
|
||||
namespace dusk {
|
||||
|
||||
inline void strncpyProxy(char* dst, const char* src, size_t count) {
|
||||
#if _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4996)
|
||||
struct TextSpan {
|
||||
char* buffer;
|
||||
size_t size;
|
||||
|
||||
constexpr operator char*() const {
|
||||
return buffer;
|
||||
}
|
||||
|
||||
constexpr TextSpan(char* buffer, size_t size) : buffer(buffer), size(size) { }
|
||||
|
||||
template<size_t BufSize>
|
||||
constexpr TextSpan(char (&buffer)[BufSize]) : buffer(buffer), size(BufSize) {
|
||||
}
|
||||
|
||||
constexpr TextSpan() : buffer(nullptr), size(0) { }
|
||||
|
||||
constexpr TextSpan operator++(int) {
|
||||
const auto prev = *this;
|
||||
|
||||
if (size > 0) [[likely]] {
|
||||
size--;
|
||||
}
|
||||
buffer++;
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
constexpr char& operator*() const {
|
||||
if (size == 0) [[unlikely]] {
|
||||
CrashSpawnEmpty();
|
||||
}
|
||||
|
||||
return *buffer;
|
||||
}
|
||||
|
||||
private:
|
||||
static void CrashSpawnEmpty();
|
||||
};
|
||||
|
||||
#if TARGET_PC
|
||||
#define TEXT_SPAN dusk::TextSpan
|
||||
#else
|
||||
#define TEXT_SPAN char*
|
||||
#endif
|
||||
strncpy(dst, src, count);
|
||||
#if _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
}
|
||||
|
||||
void SafeStringCopyTruncate(char* buffer, size_t bufSize, const char* src);
|
||||
|
||||
/**
|
||||
* Copy a string to a fixed-size array.
|
||||
@@ -25,13 +58,28 @@ inline void strncpyProxy(char* dst, const char* src, size_t count) {
|
||||
template <size_t BufSize>
|
||||
void SafeStringCopyTruncate(char (&buffer)[BufSize], const char* src) {
|
||||
static_assert(BufSize > 0, "Target buffer cannot be size zero");
|
||||
SafeStringCopyTruncate(buffer, BufSize, src);
|
||||
}
|
||||
|
||||
if (buffer == src) {
|
||||
CRASH("Cannot copy string to same buffer");
|
||||
}
|
||||
void SafeStringCopy(char* buffer, size_t bufSize, const char* src);
|
||||
void SafeStringCat(char* buffer, size_t bufSize, const char* src);
|
||||
int SafeStringVPrintf(char* buffer, size_t bufSize, const char* src, std::va_list args);
|
||||
|
||||
strncpyProxy(buffer, src, BufSize);
|
||||
buffer[BufSize - 1] = 0;
|
||||
inline void SafeStringCopy(TextSpan dst, const char* src) {
|
||||
SafeStringCopy(dst.buffer, dst.size, src);
|
||||
}
|
||||
|
||||
inline void SafeStringCat(TextSpan dst, const char* src) {
|
||||
SafeStringCat(dst.buffer, dst.size, src);
|
||||
}
|
||||
|
||||
inline int SafeStringPrintf(TextSpan dst, const char* format, ...) {
|
||||
std::va_list args;
|
||||
va_start(args, format);
|
||||
const auto ret = SafeStringVPrintf(dst.buffer, dst.size, format, args);
|
||||
va_end(args);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -41,18 +89,40 @@ void SafeStringCopyTruncate(char (&buffer)[BufSize], const char* src) {
|
||||
template <size_t BufSize>
|
||||
void SafeStringCopy(char (&buffer)[BufSize], const char* src) {
|
||||
static_assert(BufSize > 0, "Target buffer cannot be size zero");
|
||||
if (buffer == src) {
|
||||
CRASH("Cannot copy string to same buffer");
|
||||
}
|
||||
|
||||
if (strlen(src) > BufSize - 1) {
|
||||
CRASH("Destination buffer too small!");
|
||||
}
|
||||
|
||||
strncpyProxy(buffer, src, BufSize);
|
||||
buffer[BufSize - 1] = 0;
|
||||
SafeStringCopy(buffer, BufSize, src);
|
||||
}
|
||||
|
||||
template <size_t BufSize>
|
||||
void SafeStringCat(char (&buffer)[BufSize], const char* src) {
|
||||
static_assert(BufSize > 0, "Target buffer cannot be size zero");
|
||||
SafeStringCat(buffer, BufSize, src);
|
||||
}
|
||||
|
||||
template <size_t BufSize>
|
||||
int SafeStringPrintf(char (&buffer)[BufSize], const char* format, ...) {
|
||||
static_assert(BufSize > 0, "Target buffer cannot be size zero");
|
||||
|
||||
std::va_list args;
|
||||
va_start(args, format);
|
||||
const auto ret = SafeStringVPrintf(buffer, BufSize, format, args);
|
||||
va_end(args);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
#define SAFE_STRCPY dusk::SafeStringCopy
|
||||
#define SAFE_STRCAT dusk::SafeStringCat
|
||||
#define SAFE_SPRINTF dusk::SafeStringPrintf
|
||||
#define SAFE_STRCPY_BOUNDED dusk::SafeStringCopy
|
||||
#define SAFE_STRCAT_BOUNDED dusk::SafeStringCat
|
||||
#else
|
||||
#define SAFE_STRCPY strcpy
|
||||
#define SAFE_STRCAT strcat
|
||||
#define SAFE_SPRINTF sprintf
|
||||
#define SAFE_STRCPY_BOUNDED strcpy
|
||||
#define SAFE_STRCPY_BOUNDED strcat
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // DUSK_STRING_HPP
|
||||
|
||||
@@ -50,7 +50,7 @@ fpc_ProcID fopMsgM_messageSet(u32 i_msgIdx, fopAc_ac_c* i_talkActor, u32 param_2
|
||||
fpc_ProcID fopMsgM_messageSet(u32 i_msgIdx, u32 param_1);
|
||||
fpc_ProcID fopMsgM_messageSetDemo(u32 i_msgidx);
|
||||
msg_class* fopMsgM_SearchByID(fpc_ProcID i_id);
|
||||
char* fopMsgM_messageGet(char* i_stringBuf, u32 i_msgId);
|
||||
TEXT_SPAN fopMsgM_messageGet(TEXT_SPAN i_stringBuf, u32 i_msgId);
|
||||
fpc_ProcID fop_Timer_create(s16 i_procName, u8 i_mode, u32 i_limitMs, u8 i_type, u8 param_4,
|
||||
f32 param_5, f32 param_6, f32 param_7, f32 param_8,
|
||||
fopMsgCreateFunc i_createFunc);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "JSystem/J2DGraph/J2DMaterial.h"
|
||||
#include "JSystem/J2DGraph/J2DPane.h"
|
||||
#include "dusk/endian.h"
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
class J2DMaterial;
|
||||
class JUTFont;
|
||||
@@ -98,7 +99,8 @@ public:
|
||||
void initiate(ResFONT const*, char const*, s16, J2DTextBoxHBinding,
|
||||
J2DTextBoxVBinding);
|
||||
void private_readStream(J2DPane*, JSURandomInputStream*, JKRArchive*);
|
||||
char* getStringPtr() const;
|
||||
TEXT_SPAN getStringPtr() const;
|
||||
dusk::TextSpan getSpan() const;
|
||||
s32 setString(s16, char const*, ...);
|
||||
s32 setString(char const*, ...);
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include <cstring>
|
||||
#include <types.h>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
J2DMaterialFactory::J2DMaterialFactory(J2DMaterialBlock const& param_0) {
|
||||
mMaterialNum = param_0.field_0x8;
|
||||
mpMaterialInitData = JSUConvertOffsetToPtr<J2DMaterialInitData>(¶m_0, param_0.field_0xc);
|
||||
@@ -92,7 +94,7 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
}
|
||||
if (local_380 == NULL && J2DScreen::getDataManage() != NULL) {
|
||||
char acStack_230[257];
|
||||
strcpy(acStack_230, param_3->getName(texNo));
|
||||
SAFE_STRCPY(acStack_230, param_3->getName(texNo));
|
||||
local_380 = J2DScreen::getDataManage()->get(acStack_230);
|
||||
}
|
||||
}
|
||||
@@ -111,7 +113,7 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
}
|
||||
if (local_388 == NULL && J2DScreen::getDataManage() != NULL) {
|
||||
char acStack_334[257];
|
||||
strcpy(acStack_334, param_4->getName(param_0->getTevBlock()->getFontNo()));
|
||||
SAFE_STRCPY(acStack_334, param_4->getName(param_0->getTevBlock()->getFontNo()));
|
||||
local_388 = J2DScreen::getDataManage()->get(acStack_334);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,8 +309,12 @@ void J2DTextBox::draw(f32 posX, f32 posY, f32 param_2, J2DTextBoxHBinding hBind)
|
||||
}
|
||||
}
|
||||
|
||||
char* J2DTextBox::getStringPtr() const {
|
||||
TEXT_SPAN J2DTextBox::getStringPtr() const {
|
||||
#if TARGET_PC
|
||||
return { mStringPtr, mStringLength };
|
||||
#else
|
||||
return mStringPtr;
|
||||
#endif
|
||||
}
|
||||
|
||||
s32 J2DTextBox::setString(char const* string, ...) {
|
||||
@@ -330,7 +334,7 @@ s32 J2DTextBox::setString(char const* string, ...) {
|
||||
|
||||
if (mStringPtr) {
|
||||
mStringLength = len + 1;
|
||||
strcpy(mStringPtr, string);
|
||||
SAFE_STRCPY_BOUNDED(mStringPtr, mStringLength, string);
|
||||
}
|
||||
|
||||
va_end(args);
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#include <JSystem/JUtility/JUTAssert.h>
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
u32 JAHVirtualNode::smVirNodeNum;
|
||||
|
||||
void JAHVirtualNode::virtualMessage(JAHControl& control) {
|
||||
@@ -77,7 +79,7 @@ void JAHVirtualNode::setVirNodeName(const char* name) {
|
||||
// clang-format off
|
||||
JUT_ASSERT(141, size<32);
|
||||
// clang-format on
|
||||
strcpy(mName, name);
|
||||
SAFE_STRCPY(mName, name);
|
||||
}
|
||||
|
||||
JAHVirtualNode::JAHVirtualNode(const char* name) : mTree(this) {
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
#include "JSystem/JAHostIO/JAHioMessage.h"
|
||||
#include "JSystem/JAHostIO/JAHioMgr.h"
|
||||
#include "JSystem/JAHostIO/JAHioNode.h"
|
||||
|
||||
#include "JSystem/JHostIO/JORServer.h"
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
JAHioNode* JAHioNode::smCurrentNode;
|
||||
|
||||
@@ -32,7 +34,7 @@ void JAHioNode::updateNode() {
|
||||
void JAHioNode::setNodeName(const char* name) {
|
||||
int size = strlen(name) + 1;
|
||||
JUT_ASSERT(51, size < 32);
|
||||
strcpy(mName, name);
|
||||
SAFE_STRCPY(mName, name);
|
||||
}
|
||||
|
||||
void JAHioNode::genMessage(JORMContext* mctx) {
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <os.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
JASHeap* JASWaveArcLoader::sAramHeap;
|
||||
|
||||
JASHeap* JASWaveArcLoader::getRootHeap() {
|
||||
@@ -22,7 +24,7 @@ char JASWaveArcLoader::sCurrentDir[DIR_MAX] = "/AudioRes/Waves/";
|
||||
|
||||
void JASWaveArcLoader::setCurrentDir(char const* dir) {
|
||||
JUT_ASSERT(40, std::strlen(dir) < DIR_MAX - 1);
|
||||
strcpy(sCurrentDir, dir);
|
||||
SAFE_STRCPY(sCurrentDir, dir);
|
||||
u32 len = strlen(sCurrentDir);
|
||||
if (sCurrentDir[len - 1] != '/') {
|
||||
JUT_ASSERT(45, len + 1 < DIR_MAX);
|
||||
@@ -170,8 +172,8 @@ void JASWaveArc::setFileName(char const* fileName) {
|
||||
length = length + strlen(fileName);
|
||||
char* path = JKR_NEW_ARRAY_ARGS(char, length + 1, JASKernel::getSystemHeap(), -4);
|
||||
JUT_ASSERT(322, path);
|
||||
strcpy(path, currentDir);
|
||||
strcat(path, fileName);
|
||||
SAFE_STRCPY_BOUNDED(path, length + 1, currentDir);
|
||||
SAFE_STRCAT_BOUNDED(path, length + 1, fileName);
|
||||
path[length] = '\0';
|
||||
int entryNum = DVDConvertPathToEntrynum(path);
|
||||
JKR_DELETE_ARRAY(path);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <cctype>
|
||||
#include <cstring>
|
||||
#include "dusk/string.hpp"
|
||||
#include "global.h"
|
||||
|
||||
JKRFileCache* JKRFileCache::mount(const char* path, JKRHeap* heap, const char* param_3) {
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
|
||||
#define MSL_USE_INLINES 1 // needed to inline tolower call. not inlined elsewhere in the repo
|
||||
|
||||
#include <cstring>
|
||||
#include <cctype>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dusk/string.hpp"
|
||||
#include "global.h"
|
||||
|
||||
JKRFileLoader* JKRFileLoader::sCurrentVolume;
|
||||
@@ -104,7 +105,7 @@ const char* JKRFileLoader::fetchVolumeName(char* buffer, s32 bufferSize, const c
|
||||
static char rootPath[2] = "/";
|
||||
|
||||
if (strcmp(path, "/") == 0) {
|
||||
strcpy(buffer, rootPath);
|
||||
SAFE_STRCPY_BOUNDED(buffer, bufferSize, rootPath);
|
||||
return rootPath;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "global.h"
|
||||
#include <stdint.h>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
#if TARGET_PC
|
||||
#include "dusk/os.h"
|
||||
#endif
|
||||
@@ -274,7 +276,7 @@ void JKRThreadSwitch::draw(JKRThreadName_* thread_name_list, JUTConsole* console
|
||||
|
||||
if (!thread_print_name) {
|
||||
char buffer[16];
|
||||
sprintf(buffer, "%d", loadInfo->getId());
|
||||
SAFE_SPRINTF(buffer, "%d", loadInfo->getId());
|
||||
thread_print_name = buffer;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
#include "JSystem/JSystem.h" // IWYU pragma: keep
|
||||
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include <cstdio>
|
||||
#include <vi.h>
|
||||
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "JSystem/JUtility/JUTDirectPrint.h"
|
||||
#include "JSystem/JUtility/JUTVideo.h"
|
||||
#include <vi.h>
|
||||
#include <cstdio>
|
||||
#include "dusk/string.hpp"
|
||||
#include "global.h"
|
||||
|
||||
JUTConsoleManager* JUTConsoleManager::sManager;
|
||||
@@ -204,10 +205,10 @@ void JUTConsole::doDraw(JUTConsole::EConsoleType consoleType) const {
|
||||
mFont->drawString_scale((int)f31, sp94, mFontSizeX, mFontSizeY, spA8, TRUE);
|
||||
f31 += mFontSizeX * 13.0f;
|
||||
if (sp88) {
|
||||
sprintf(spB8, "ALL");
|
||||
SAFE_SPRINTF(spB8, "ALL");
|
||||
} else {
|
||||
f32 f29 = sp8C / (f32)(sp90 - mHeight);
|
||||
sprintf(spB8, "%3d%%(%dL)", (int)(100.0 * f29), sp90);
|
||||
SAFE_SPRINTF(spB8, "%3d%%(%dL)", (int)(100.0 * f29), sp90);
|
||||
}
|
||||
mFont->drawString_scale(f31, sp94, mFontSizeX, mFontSizeY, spB8, TRUE);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
#ifdef __REVOLUTION_SDK__
|
||||
#include <revolution.h>
|
||||
#else
|
||||
@@ -845,8 +847,8 @@ bool JUTException::queryMapAddress(char* mapPath, u32 address, s32 section_id, u
|
||||
bool begin_with_newline) {
|
||||
if (mapPath) {
|
||||
char buffer[80];
|
||||
strcpy(buffer, mapPath);
|
||||
strcat(buffer, ".map");
|
||||
SAFE_STRCPY(buffer, mapPath);
|
||||
SAFE_STRCAT(buffer, ".map");
|
||||
if (queryMapAddress_single(buffer, address, section_id, out_addr, out_size, out_line,
|
||||
line_length, print, begin_with_newline) == true)
|
||||
{
|
||||
|
||||
@@ -183,7 +183,7 @@ bool Z2SoundMgr::startSound(JAISoundID soundID, JAISoundHandle* handle, const JG
|
||||
return streamMgr_.startSound(soundID, handle, posPtr);
|
||||
default:
|
||||
char error[64];
|
||||
sprintf(error, "Unknown Sound-Type id :%08x\n", (u32)soundID);
|
||||
SAFE_SPRINTF(error, "Unknown Sound-Type id :%08x\n", (u32)soundID);
|
||||
JUT_WARN(277, "%s", error);
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
#include "dusk/settings.h"
|
||||
#include "res/Object/Alink.h"
|
||||
#include <cstring>
|
||||
#include <dusk/string.hpp>
|
||||
#endif
|
||||
|
||||
#include "dusk/randomizer/game/flags.h"
|
||||
|
||||
@@ -4656,7 +4656,7 @@ void daAlink_c::dungeonReturnWarp() {
|
||||
s16 angle = dComIfGs_getWarpPlayerAngleY();
|
||||
s8 room = dComIfGs_getWarpRoomNo();
|
||||
char name[8];
|
||||
strcpy(name, dComIfGs_getWarpStageName());
|
||||
SAFE_STRCPY(name, dComIfGs_getWarpStageName());
|
||||
|
||||
dComIfGs_setRestartRoom(pos, angle, room);
|
||||
dComIfGp_setNextStage(name, -1, dComIfGs_getRestartRoomNo(), -1, 0.0f, 12, 0,
|
||||
@@ -4832,7 +4832,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
|
||||
if (checkBossRoom() && fopAcM_GetRoomNo(this) == 50) {
|
||||
char stageName[32];
|
||||
strcpy(stageName, dComIfGp_getStartStageName());
|
||||
SAFE_STRCPY(stageName, dComIfGp_getStartStageName());
|
||||
|
||||
for (int i = 0; i < 32; i++) {
|
||||
if ((s64)stageName[i] == 0) {
|
||||
|
||||
+16
-15
@@ -5,24 +5,25 @@
|
||||
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_bg_obj.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include <cstdio>
|
||||
#include <os.h>
|
||||
#include <cstring>
|
||||
#include <os.h>
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/actor/d_a_bg_obj.h"
|
||||
#include "d/actor/d_a_set_bgobj.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
static const char* getBmdName(int param_0, int param_1) {
|
||||
static char l_bmdName[16];
|
||||
|
||||
switch (param_1) {
|
||||
case 0:
|
||||
sprintf(l_bmdName, "model%d.bmd", param_0);
|
||||
SAFE_SPRINTF(l_bmdName, "model%d.bmd", param_0);
|
||||
break;
|
||||
default:
|
||||
sprintf(l_bmdName, "model%d_%d.bmd", param_0, param_1);
|
||||
SAFE_SPRINTF(l_bmdName, "model%d_%d.bmd", param_0, param_1);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -34,10 +35,10 @@ static const char* getBtkName(int param_0, int param_1) {
|
||||
|
||||
switch (param_1) {
|
||||
case 0:
|
||||
sprintf(l_btkName, "model%d.btk", param_0);
|
||||
SAFE_SPRINTF(l_btkName, "model%d.btk", param_0);
|
||||
break;
|
||||
default:
|
||||
sprintf(l_btkName, "model%d_%d.btk", param_0, param_1);
|
||||
SAFE_SPRINTF(l_btkName, "model%d_%d.btk", param_0, param_1);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -49,10 +50,10 @@ static const char* getBrkName(int param_0, int param_1) {
|
||||
|
||||
switch (param_1) {
|
||||
case 0:
|
||||
sprintf(l_brkName, "model%d.brk", param_0);
|
||||
SAFE_SPRINTF(l_brkName, "model%d.brk", param_0);
|
||||
break;
|
||||
default:
|
||||
sprintf(l_brkName, "model%d_%d.brk", param_0, param_1);
|
||||
SAFE_SPRINTF(l_brkName, "model%d_%d.brk", param_0, param_1);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -62,7 +63,7 @@ static const char* getBrkName(int param_0, int param_1) {
|
||||
static const char* getDzbName(int param_0) {
|
||||
static char l_dzbName[16];
|
||||
|
||||
sprintf(l_dzbName, "model%d.dzb", param_0);
|
||||
SAFE_SPRINTF(l_dzbName, "model%d.dzb", param_0);
|
||||
return l_dzbName;
|
||||
}
|
||||
|
||||
@@ -95,12 +96,12 @@ u8* daBgObj_c::spec_data_c::initTexShareBlock(u8* i_dataPtr) {
|
||||
u8* dataPos = i_dataPtr + 8;
|
||||
|
||||
for (; i < mTexShareNum; i++) {
|
||||
strcpy(sp48, (char*)dataPos);
|
||||
SAFE_STRCPY(sp48, (char*)dataPos);
|
||||
int len = strlen((char*)dataPos);
|
||||
|
||||
dataPos += len + 1;
|
||||
if (*dataPos != 0) {
|
||||
strcpy(sp8, (char*)dataPos);
|
||||
SAFE_STRCPY(sp8, (char*)dataPos);
|
||||
dataPos += strlen((char*)dataPos) + 1;
|
||||
} else if (*dataPos == 0 && dataPos[1] == 1) {
|
||||
dataPos += 2;
|
||||
@@ -646,14 +647,14 @@ void daBgObj_c::doShareTexture() {
|
||||
u8* spec_res_name = mSpecData.mpTexShareBlock + 8;
|
||||
|
||||
for (int i = 0; i < mSpecData.mTexShareNum; i++) {
|
||||
strcpy(res_name, (char*)spec_res_name);
|
||||
SAFE_STRCPY(res_name, (char*)spec_res_name);
|
||||
spec_res_name += strlen((char*)spec_res_name) + 1;
|
||||
|
||||
J3DModelData* modelData =
|
||||
(J3DModelData*)dComIfG_getObjectRes(daSetBgObj_c::getArcName(this), res_name);
|
||||
|
||||
if (*spec_res_name != 0) {
|
||||
strcpy(share_res_name, (char*)spec_res_name);
|
||||
SAFE_STRCPY(share_res_name, (char*)spec_res_name);
|
||||
spec_res_name += strlen((char*)spec_res_name) + 1;
|
||||
|
||||
J3DModelData* shareModelData =
|
||||
|
||||
@@ -51,7 +51,7 @@ static char* l_bmd_base_name = "door-pushDouble_";
|
||||
|
||||
char* daDbDoor00_c::getBmdName() {
|
||||
static char l_bmdName[32];
|
||||
sprintf(l_bmdName, "%s%02d.bmd", l_bmd_base_name, door_param2_c::getDoorModel(this));
|
||||
SAFE_SPRINTF(l_bmdName, "%s%02d.bmd", l_bmd_base_name, door_param2_c::getDoorModel(this));
|
||||
return l_bmdName;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ static char* l_bmd_base_name = "door-knob_";
|
||||
char* daKnob20_c::getBmd() {
|
||||
static char l_bmdName[32];
|
||||
|
||||
sprintf(l_bmdName, "%s%02d.bmd", l_bmd_base_name, knob_param_c::getDoorModel(this));
|
||||
SAFE_SPRINTF(l_bmdName, "%s%02d.bmd", l_bmd_base_name, knob_param_c::getDoorModel(this));
|
||||
return l_bmdName;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,10 +68,10 @@ char* daDoor20_c::getBmdName() {
|
||||
case 10:
|
||||
case 12:
|
||||
default:
|
||||
sprintf(bmdName, "door-shutter_%02d.bmd", door_param2_c::getDoorModel(this));
|
||||
SAFE_SPRINTF(bmdName, "door-shutter_%02d.bmd", door_param2_c::getDoorModel(this));
|
||||
break;
|
||||
case 9:
|
||||
sprintf(bmdName, "door-knob_%02d.bmd", door_param2_c::getDoorModel(this));
|
||||
SAFE_SPRINTF(bmdName, "door-knob_%02d.bmd", door_param2_c::getDoorModel(this));
|
||||
break;
|
||||
}
|
||||
return bmdName;
|
||||
|
||||
@@ -94,9 +94,9 @@ const char* daSpiral_c::getBmd(int i_type) {
|
||||
const char* daSpiral_c::getBmd2(int i_type) {
|
||||
static char bmdName[32];
|
||||
if (i_type == daSpiral_TYPE_DOWN_e) {
|
||||
sprintf(bmdName, "door-stairSpiralU.bmd");
|
||||
SAFE_SPRINTF(bmdName, "door-stairSpiralU.bmd");
|
||||
} else {
|
||||
sprintf(bmdName, "door-stairSpiralD.bmd");
|
||||
SAFE_SPRINTF(bmdName, "door-stairSpiralD.bmd");
|
||||
}
|
||||
|
||||
return bmdName;
|
||||
|
||||
@@ -4494,7 +4494,7 @@ int daMP_c::daMP_c_Init() {
|
||||
JUT_ASSERT(9507, 0 <= movieNo && movieNo <= 99);
|
||||
|
||||
char path[32];
|
||||
sprintf(path, "/Movie/demo_movie%02d_%02d.thp", demoNo, movieNo);
|
||||
SAFE_SPRINTF(path, "/Movie/demo_movie%02d_%02d.thp", demoNo, movieNo);
|
||||
|
||||
if (!daMP_ActivePlayer_Init(path)) {
|
||||
daMP_Fail_alloc = TRUE;
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#include "Z2AudioLib/Z2Instances.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
static int l_bmdData[4][2] = {
|
||||
{14, 1}, {26, 2},
|
||||
{25, 2}, {3, 4},
|
||||
@@ -1336,8 +1338,8 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) {
|
||||
home.angle.y += 0x8000;
|
||||
setAngle(home.angle.y);
|
||||
initTalk(0xcf, NULL);
|
||||
strcpy(acStack_98, l_evtList[9].eventName);
|
||||
strcat(acStack_98, "@");
|
||||
SAFE_STRCPY(acStack_98, l_evtList[9].eventName);
|
||||
SAFE_STRCAT(acStack_98, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(this, acStack_98);
|
||||
dComIfGp_getEvent()->onSkipFade();
|
||||
dComIfGp_getVibration().StartShock( 9, 15, cXyz(0.0f, 1.0f, 0.0f));
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "d/actor/d_a_e_ym.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
enum saru_TW_RES_File_ID {
|
||||
/* BMDR */
|
||||
/* 0x4 */ BMDR_SARU_BARA_TW = 0x4,
|
||||
@@ -956,8 +958,8 @@ int daNpc_Saru_c::cutYmLook(int param_1) {
|
||||
if (dComIfGp_getEventManager().getIsAddvance(param_1) != 0) {
|
||||
switch (iVar1) {
|
||||
case 0:
|
||||
strcpy(acStack_88, l_evtList[2].eventName);
|
||||
strcat(acStack_88, "@");
|
||||
SAFE_STRCPY(acStack_88, l_evtList[2].eventName);
|
||||
SAFE_STRCAT(acStack_88, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(this, acStack_88);
|
||||
dComIfGp_getEvent()->onSkipFade();
|
||||
field_0xfd9 = 1;
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "d/actor/d_a_npc_shop0.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
static int createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
return static_cast<daNpc_Shop0_c*>(i_this)->createHeap();
|
||||
}
|
||||
@@ -184,8 +186,8 @@ int daNpc_Shop0_c::init() {
|
||||
static char l_fileName[21];
|
||||
|
||||
J3DAnmTransform* daNpc_Shop0_c::getTrnsfrmAnmP(int i_fileIndex, char** i_fileName) {
|
||||
strcpy(l_fileName, i_fileName[i_fileIndex]);
|
||||
strcat(l_fileName, ".bck");
|
||||
SAFE_STRCPY(l_fileName, i_fileName[i_fileIndex]);
|
||||
SAFE_STRCAT(l_fileName, ".bck");
|
||||
return (J3DAnmTransform*) dComIfG_getObjectRes(getResName(), l_fileName);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <cstring>
|
||||
|
||||
#if TARGET_PC
|
||||
#include "dusk/string.hpp"
|
||||
#include "dusk/randomizer/game/tools.h"
|
||||
#endif
|
||||
|
||||
@@ -1146,8 +1147,8 @@ BOOL daNpc_Yelia_c::cutTakeWoodStatue(int i_staffId) {
|
||||
mItemId = fpcM_ERROR_PROCESS_ID_e;
|
||||
mEventTimer = timer;
|
||||
Z2GetAudioMgr()->muteSceneBgm(90, 0.0f);
|
||||
strcpy(name, l_evtList[EVENT_TAKE_WOODSTATUE].eventName);
|
||||
strcat(name, "@");
|
||||
SAFE_STRCPY(name, l_evtList[EVENT_TAKE_WOODSTATUE].eventName);
|
||||
SAFE_STRCAT(name, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(this, name);
|
||||
dComIfGp_getEvent()->onSkipFade();
|
||||
break;
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <cstring>
|
||||
|
||||
#if TARGET_PC
|
||||
#include "dusk/string.hpp"
|
||||
#include "dusk/randomizer/game/verify_item_functions.h"
|
||||
#endif
|
||||
|
||||
@@ -1418,11 +1419,11 @@ int daNpc_ykW_c::cutGoIntoBossRoom(int param_0) {
|
||||
|
||||
if (skip != 0 && (prm == 0 || prm == 4)) {
|
||||
if (prm == 0) {
|
||||
strcpy(unkStrBuf1, l_evtList[4].eventName);
|
||||
SAFE_STRCPY(unkStrBuf1, l_evtList[4].eventName);
|
||||
} else {
|
||||
strcpy(unkStrBuf1, l_evtList[5].eventName);
|
||||
SAFE_STRCPY(unkStrBuf1, l_evtList[5].eventName);
|
||||
}
|
||||
strcat(unkStrBuf1, "@");
|
||||
SAFE_STRCAT(unkStrBuf1, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(this, unkStrBuf1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ inline int daObjFlag_c::createHeap() {
|
||||
tmp = true;
|
||||
|
||||
char resName[12];
|
||||
sprintf(resName, "flag%02d.bmd", angle);
|
||||
SAFE_SPRINTF(resName, "flag%02d.bmd", angle);
|
||||
|
||||
shape_angle.setall(0);
|
||||
current.angle.setall(0);
|
||||
|
||||
@@ -370,7 +370,7 @@ int daObjFlag2_c::createHeap() {
|
||||
s8 flagNum = (u8)shape_angle.x;
|
||||
if (mFlagValid) {
|
||||
char acStack_40[16];
|
||||
sprintf(acStack_40, "flag%02d.bti", flagNum);
|
||||
SAFE_SPRINTF(acStack_40, "flag%02d.bti", flagNum);
|
||||
shape_angle.setall(0);
|
||||
current.angle.setall(0);
|
||||
ResTIMG* image = (ResTIMG*)dComIfG_getObjectRes(mFlagName, "flag.bti");
|
||||
@@ -409,7 +409,7 @@ int daObjFlag2_c::create() {
|
||||
mFlagValid = false;
|
||||
} else {
|
||||
mFlagValid = true;
|
||||
sprintf(mFlagName, "FlagObj%02d", flagNum);
|
||||
SAFE_SPRINTF(mFlagName, "FlagObj%02d", flagNum);
|
||||
int rv = dComIfG_resLoad(&mFlagPhase, mFlagName);
|
||||
if (rv != cPhs_COMPLEATE_e) {
|
||||
return rv;
|
||||
|
||||
@@ -299,7 +299,7 @@ int daObjFlag3_c::createHeap() {
|
||||
s8 flagNum = (u8)shape_angle.x;
|
||||
if (mFlagValid) {
|
||||
char acStack_40[16];
|
||||
sprintf(acStack_40, "flag%02d.bti", flagNum);
|
||||
SAFE_SPRINTF(acStack_40, "flag%02d.bti", flagNum);
|
||||
shape_angle.setall(0);
|
||||
current.angle.setall(0);
|
||||
ResTIMG* image = (ResTIMG*)dComIfG_getObjectRes(mFlagName, "flag.bti");
|
||||
@@ -486,7 +486,7 @@ int daObjFlag3_c::create() {
|
||||
mFlagValid = false;
|
||||
} else {
|
||||
mFlagValid = true;
|
||||
sprintf(mFlagName, "FlagObj%02d", flagNum);
|
||||
SAFE_SPRINTF(mFlagName, "FlagObj%02d", flagNum);
|
||||
int rv = dComIfG_resLoad(&mFlagPhase, mFlagName);
|
||||
if (rv != cPhs_COMPLEATE_e) {
|
||||
return rv;
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_gra2.h"
|
||||
#include "d/actor/d_a_npc4.h"
|
||||
#include "d/actor/d_a_obj_gra2.h"
|
||||
#include "d/actor/d_a_tag_gra.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_com_inf_actor.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "dusk/string.hpp"
|
||||
#if DEBUG
|
||||
#include "d/d_debug_viewer.h"
|
||||
#endif
|
||||
@@ -539,7 +540,7 @@ const char* daObj_GrA_c::getResName() {
|
||||
|
||||
u8 daObj_GrA_c::getMode() {
|
||||
u32 uVar1 = fopAcM_GetParam(this) >> 28 & 3;
|
||||
strcpy(field_0x744, "Obj_grA");
|
||||
SAFE_STRCPY(field_0x744, "Obj_grA");
|
||||
|
||||
switch (uVar1) {
|
||||
case 1:
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "d/actor/d_a_tag_kmsg.h"
|
||||
#include <types.h>
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "f_op/f_op_msg.h"
|
||||
|
||||
@@ -1364,8 +1366,8 @@ int daObj_Sekizoa_c::cutStart(int i_staffIdx) {
|
||||
daObj_SMTile_c* actor_4 = (daObj_SMTile_c*)mActorMngrs[4].getActorP();
|
||||
actor_4->reset();
|
||||
dComIfGp_getEvent()->setPt2(actor_4);
|
||||
strcpy(acStack_90, l_evtList[2].eventName);
|
||||
strcat(acStack_90, "@");
|
||||
SAFE_STRCPY(acStack_90, l_evtList[2].eventName);
|
||||
SAFE_STRCAT(acStack_90, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(this, acStack_90);
|
||||
dComIfGp_getEvent()->onSkipFade();
|
||||
if (daNpcT_getPlayerInfoFromPlayerList(1, fopAcM_GetRoomNo(this), &c_stack_9c,
|
||||
@@ -1856,8 +1858,8 @@ int daObj_Sekizoa_c::cutGoal(int i_staffIdx) {
|
||||
switch (prm) {
|
||||
case 0:
|
||||
if (mType == TYPE_0) {
|
||||
strcpy(acStack_9c, l_evtList[6].eventName);
|
||||
strcat(acStack_9c, "@");
|
||||
SAFE_STRCPY(acStack_9c, l_evtList[6].eventName);
|
||||
SAFE_STRCAT(acStack_9c, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(this, acStack_9c);
|
||||
dComIfGp_getEvent()->onSkipFade();
|
||||
}
|
||||
@@ -2222,8 +2224,8 @@ int daObj_Sekizoa_c::cutExtinction(int i_staffIdx) {
|
||||
cStack_b0 += actor_0->current.pos;
|
||||
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&cStack_b0,
|
||||
actor_0->shape_angle.y - -0x8000, 0);
|
||||
strcpy(acStack_a4, l_evtList[9].eventName);
|
||||
strcat(acStack_a4, "@");
|
||||
SAFE_STRCPY(acStack_a4, l_evtList[9].eventName);
|
||||
SAFE_STRCAT(acStack_a4, "@");
|
||||
dComIfGp_getEvent()->setSkipZev(actor_0, acStack_a4);
|
||||
dComIfGp_getEvent()->onSkipFade();
|
||||
actor_0->pullMasterSword();
|
||||
|
||||
@@ -26,7 +26,7 @@ int daSetBgObj_c::CreateInit() {
|
||||
int daSetBgObj_c::create() {
|
||||
fopAcM_ct(this, daSetBgObj_c);
|
||||
|
||||
sprintf(mArcName, "%s", getArcName(this));
|
||||
SAFE_SPRINTF(mArcName, "%s", getArcName(this));
|
||||
|
||||
int phase = dComIfG_resLoad(&mPhase, mArcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
static char* l_evtNameList[] = {
|
||||
NULL,
|
||||
"JUMP_DEMOSTAGE",
|
||||
@@ -26,7 +28,7 @@ int daTag_Evt_c::create() {
|
||||
cPhs_Step phase = dComIfG_resLoad(&mPhase, l_resFileName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
eventInfo.setArchiveName(l_resFileName);
|
||||
strcpy(field_0x568, "TagEvt");
|
||||
SAFE_STRCPY(field_0x568, "TagEvt");
|
||||
getParam();
|
||||
field_0x572 = -1;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "d/d_debug_viewer.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
static int createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
daTag_Msg_c* msg = (daTag_Msg_c*)i_this;
|
||||
return msg->createHeap();
|
||||
@@ -219,7 +221,7 @@ void daTag_Msg_c::getParam() {
|
||||
|
||||
scale.x *= 100.0f;
|
||||
scale.y *= 100.0f;
|
||||
strcpy(mStaffName, "Tag_ms");
|
||||
SAFE_STRCPY(mStaffName, "Tag_ms");
|
||||
}
|
||||
|
||||
char* daTag_Msg_c::mEvtCutTBL[2] = {
|
||||
|
||||
@@ -250,7 +250,7 @@ void daTitle_c::loadWait_proc() {
|
||||
text[i]->setFont(mpFont);
|
||||
text[i]->setString(0x80, "");
|
||||
|
||||
char* msg = text[i]->getStringPtr();
|
||||
TEXT_SPAN msg = text[i]->getStringPtr();
|
||||
fopMsgM_messageGet(msg, 100);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
void dBgp_c::material_c::draw() {
|
||||
material_c* material = this;
|
||||
do {
|
||||
@@ -255,7 +257,7 @@ void dBgp_c::share_c::reset() {
|
||||
|
||||
const char* dBgp_c::share_c::getArcName() {
|
||||
static char arcName[8];
|
||||
sprintf(arcName, "@mt%04x", mId);
|
||||
SAFE_SPRINTF(arcName, "@mt%04x", mId);
|
||||
return arcName;
|
||||
}
|
||||
|
||||
@@ -430,7 +432,7 @@ dBgp_c::packet_c::packet_c() {
|
||||
void dBgp_c::create(s8 i_roomNo, void* i_data) {
|
||||
mPointer = i_data;
|
||||
mPacket.setRoomNo(i_roomNo);
|
||||
strcpy(mArcName, dComIfG_getRoomArcName(i_roomNo));
|
||||
SAFE_STRCPY(mArcName, dComIfG_getRoomArcName(i_roomNo));
|
||||
|
||||
if (mPointer != NULL) {
|
||||
JKRExpHeap* block = dStage_roomControl_c::getMemoryBlock(i_roomNo);
|
||||
@@ -457,7 +459,7 @@ void dBgp_c::create(s8 i_roomNo, void* i_data) {
|
||||
unit_group_class* unitGroup = mapUnit->groups;
|
||||
for (int i = 0; i < mapUnit->num; i++) {
|
||||
char resName[16];
|
||||
sprintf(resName, "bp%04d.dzb", i);
|
||||
SAFE_SPRINTF(resName, "bp%04d.dzb", i);
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getStageRes(mArcName, resName);
|
||||
if (dzb != NULL) {
|
||||
@@ -534,7 +536,7 @@ int dBgp_c::remove() {
|
||||
|
||||
const char* dBgp_c::getArcName(u16 i_id, u16 i_arg) {
|
||||
static char arcName[8];
|
||||
sprintf(arcName, "@%03x%03x", i_id, i_arg);
|
||||
SAFE_SPRINTF(arcName, "@%03x%03x", i_id, i_arg);
|
||||
return arcName;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/logging.h"
|
||||
|
||||
#if TARGET_PC
|
||||
#include "dusk/string.hpp"
|
||||
#include "dusk/logging.h"
|
||||
#include "dusk/randomizer/game/tools.h"
|
||||
#include "dusk/randomizer/game/stages.h"
|
||||
#include "dusk/randomizer/game/flags.h"
|
||||
@@ -3372,7 +3372,7 @@ static void dComIfGs_setWarpItemData(int param_0, char const* i_stage, cXyz i_po
|
||||
|
||||
void dComIfG_play_c::setWarpItemData(char const* i_stage, cXyz i_pos, s16 i_angle, s8 i_roomNo,
|
||||
u8 param_4, u8 param_5) {
|
||||
strcpy(mItemInfo.mWarpItemData.mWarpItemStage, i_stage);
|
||||
SAFE_STRCPY(mItemInfo.mWarpItemData.mWarpItemStage, i_stage);
|
||||
mItemInfo.mWarpItemData.mWarpItemPos.set(i_pos);
|
||||
mItemInfo.mWarpItemData.mWarpItemAngle = i_angle;
|
||||
mItemInfo.mWarpItemData.mWarpItemRoom = i_roomNo;
|
||||
@@ -3459,7 +3459,7 @@ void* dComIfG_getOldStageRes(char const* i_resName) {
|
||||
|
||||
char* dComIfG_getRoomArcName(int i_roomNo) {
|
||||
static char buf[32];
|
||||
sprintf(buf, "R%02d_00", i_roomNo);
|
||||
SAFE_SPRINTF(buf, "R%02d_00", i_roomNo);
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
@@ -351,13 +351,13 @@ const char* daSetBgObj_c::getArcName(fopAc_ac_c* i_this) {
|
||||
|
||||
u32 r30 = fopAcM_GetParam(i_this);
|
||||
u16 r29 = fopAcM_GetParam(i_this);
|
||||
sprintf(arcName, "@bg%04x", r29);
|
||||
SAFE_SPRINTF(arcName, "@bg%04x", r29);
|
||||
|
||||
if (DEBUG && r30 & 0x80000000) {
|
||||
OS_REPORT("\e[43;30m旧仕様の地形ユニットMoveBGが残っています!!!\n\e[m");
|
||||
u16 r28 = r30 >> 12 & 0x1FF;
|
||||
u16 r27 = r30 & 0xFFF;
|
||||
sprintf(arcName, "@%03x%03x", r28, (u16)r27);
|
||||
SAFE_SPRINTF(arcName, "@%03x%03x", r28, (u16)r27);
|
||||
}
|
||||
return arcName;
|
||||
}
|
||||
|
||||
@@ -1349,11 +1349,11 @@ void dDbgCamera_c::monitor() {
|
||||
|
||||
for (var_r27 = 0; var_r27 < 4; var_r27++) {
|
||||
if (var_r27 == mCmdMode) {
|
||||
strcat(spC0, "____ ");
|
||||
SAFE_STRCAT(spC0, "____ ");
|
||||
break;
|
||||
}
|
||||
|
||||
strcat(spC0, " ");
|
||||
SAFE_STRCAT(spC0, " ");
|
||||
}
|
||||
|
||||
Report(pos_x, pos_y, 7, " %s", spC0);
|
||||
|
||||
+86
-74
@@ -13,6 +13,8 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#define LOAD_4BYTE_STRING_LITERAL(x) (*(u32*)(x))
|
||||
#else
|
||||
@@ -46,7 +48,7 @@ int dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
char* param_name = va_arg(args, char*);
|
||||
if (param_name != NULL) {
|
||||
strcpy(mEventData.mEventParams[i].name, param_name);
|
||||
SAFE_STRCPY(mEventData.mEventParams[i].name, param_name);
|
||||
mEventData.mEventParams[i].field_0x10 = va_arg(args, int);
|
||||
mEventData.mEventParams[i].value = va_arg(args, uintptr_t);
|
||||
} else {
|
||||
@@ -341,18 +343,23 @@ bool dCamera_c::getEvXyzData(cXyz* i_data, char* i_event, cXyz param_2) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
template<size_t N>
|
||||
bool dCamera_c::getEvStringData(char (&i_data)[N], char* i_event, char* param_2) {
|
||||
#else
|
||||
bool dCamera_c::getEvStringData(char* i_data, char* i_event, char* param_2) {
|
||||
#endif
|
||||
if (chkFlag(0x20000000)) {
|
||||
int index = searchEventArgData(i_event);
|
||||
if (index == -1) {
|
||||
strcpy(i_data, param_2);
|
||||
SAFE_STRCPY(i_data, param_2);
|
||||
} else {
|
||||
strcpy(i_data, (char*)mEventData.mEventParams[index].value);
|
||||
SAFE_STRCPY(i_data, (char*)mEventData.mEventParams[index].value);
|
||||
}
|
||||
} else if (dComIfGp_evmng_getMySubstanceNum(mEventData.mStaffIdx, i_event) != 0) {
|
||||
strcpy(i_data, dComIfGp_evmng_getMyStringP(mEventData.mStaffIdx, i_event));
|
||||
SAFE_STRCPY(i_data, dComIfGp_evmng_getMyStringP(mEventData.mStaffIdx, i_event));
|
||||
} else {
|
||||
strcpy(i_data, param_2);
|
||||
SAFE_STRCPY(i_data, param_2);
|
||||
#if DEBUG
|
||||
if (mCurCamStyleTimer == 0 && mCamSetup.CheckFlag(0x40)) {
|
||||
OS_REPORT("camera: event: %16s: %s (d)\n", i_event, i_data);
|
||||
@@ -369,6 +376,11 @@ bool dCamera_c::getEvStringData(char* i_data, char* i_event, char* param_2) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
// Used in another TU, so force instantiation to avoid linker issues.
|
||||
template bool dCamera_c::getEvStringData(char (&i_data)[12], char* i_event, char* param_2);
|
||||
#endif
|
||||
|
||||
char* dCamera_c::getEvStringPntData(char* i_event, char* param_1) {
|
||||
char* string = NULL;
|
||||
|
||||
@@ -520,7 +532,7 @@ bool dCamera_c::fixedFrameEvCamera() {
|
||||
#if DEBUG
|
||||
if (strlen(fframe_p->mRelUseMask) != 2) {
|
||||
OSReport("camera: event: bad length -> xx\n");
|
||||
strcpy(fframe_p->mRelUseMask, "xx");
|
||||
SAFE_STRCPY(fframe_p->mRelUseMask, "xx");
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), "d_ev_camera.cpp", 0x32e, "0");
|
||||
OSPanic("d_ev_camera.cpp", 0x32e, "Halt");
|
||||
}
|
||||
@@ -613,7 +625,7 @@ bool dCamera_c::fixedFrameEvCamera() {
|
||||
}
|
||||
|
||||
fframe_p->field_0x4 = relationalPos(fframe_p->mpRelActor, &sp44);
|
||||
} else if (fframe_p->mRelUseMask[1] == 116) {
|
||||
} else if (fframe_p->mRelUseMask[1] == 't') {
|
||||
fframe_p->field_0x4 = attentionPos(fframe_p->mpRelActor) + sp44;
|
||||
} else {
|
||||
fframe_p->field_0x4 = sp44;
|
||||
@@ -866,7 +878,7 @@ bool dCamera_c::fixedPositionEvCamera() {
|
||||
getEvFloatData(&fpos_p->field_0x38, "Radius", 100000.0f);
|
||||
getEvFloatData(&fpos_p->field_0x34, "StartRadius", fpos_p->field_0x38);
|
||||
fpos_p->field_0x1 = getEvFloatData(&fpos_p->field_0x2c, "Bank", 0.0f);
|
||||
getEvStringData(&fpos_p->field_0x48, "RelUseMask", "o");
|
||||
getEvStringData(fpos_p->field_0x48, "RelUseMask", "o");
|
||||
fpos_p->field_0x0 = getEvIntData(&fpos_p->field_0x4c, "Timer", -1);
|
||||
|
||||
if ((fpos_p->field_0x40 = getEvActor("Target", "@PLAYER")) == NULL) {
|
||||
@@ -877,7 +889,7 @@ bool dCamera_c::fixedPositionEvCamera() {
|
||||
fpos_p->field_0x44 = fopAcM_GetID(fpos_p->field_0x40);
|
||||
fpos_p->field_0x3c = getEvActor("RelActor");
|
||||
|
||||
if (fpos_p->field_0x3c && isRelChar(fpos_p->field_0x48)) {
|
||||
if (fpos_p->field_0x3c && isRelChar(fpos_p->field_0x48[0])) {
|
||||
fpos_p->field_0x4 = relationalPos(fpos_p->field_0x3c, &sp24);
|
||||
} else {
|
||||
fpos_p->field_0x4 = sp24;
|
||||
@@ -1021,7 +1033,7 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
|
||||
getEvIntData(&trans->mTransType, "TransType", 0);
|
||||
trans->mRelActor = getEvActor("RelActor");
|
||||
getEvStringData(&trans->mRelUseMask, "RelUseMask", "--oo");
|
||||
getEvStringData(trans->mRelUseMask, "RelUseMask", "--oo");
|
||||
getEvFloatData(&trans->mCushion, "Cushion", 1.0f);
|
||||
|
||||
if (trans->mRelActor) {
|
||||
@@ -1034,36 +1046,36 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
mAdditionVec = MidnaAdditionVec;
|
||||
}
|
||||
|
||||
if (trans->mRelUseMask == 119) {
|
||||
if (trans->mRelUseMask[0] == 'w') {
|
||||
trans->mStartCenter += mAdditionVec;
|
||||
}
|
||||
if (trans->mRelUseMask == 87) {
|
||||
if (trans->mRelUseMask[0] == 'W') {
|
||||
trans->mStartCenter -= mAdditionVec;
|
||||
}
|
||||
|
||||
if (trans->field_0x49 == 119) {
|
||||
if (trans->mRelUseMask[1] == 'w') {
|
||||
trans->mStartEye += mAdditionVec;
|
||||
}
|
||||
if (trans->field_0x49 == 87) {
|
||||
if (trans->mRelUseMask[1] == 'W') {
|
||||
trans->mStartEye -= mAdditionVec;
|
||||
}
|
||||
|
||||
if (trans->field_0x4a == 119) {
|
||||
if (trans->mRelUseMask[2] == 'w') {
|
||||
trans->mCenter += mAdditionVec;
|
||||
}
|
||||
if (trans->field_0x4a == 87) {
|
||||
if (trans->mRelUseMask[2] == 'W') {
|
||||
trans->mCenter -= mAdditionVec;
|
||||
}
|
||||
|
||||
if (trans->field_0x4b == 119) {
|
||||
if (trans->mRelUseMask[3] == 'w') {
|
||||
trans->mEye += mAdditionVec;
|
||||
}
|
||||
if (trans->field_0x4b == 87) {
|
||||
if (trans->mRelUseMask[3] == 'W') {
|
||||
trans->mEye -= mAdditionVec;
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->field_0x49 == 114) {
|
||||
if (trans->mRelUseMask[1] == 'r') {
|
||||
my_vec_0 = relationalPos(trans->mRelActor, &trans->mStartCenter);
|
||||
if ((mTicks & 1) != 0) {
|
||||
trans->mStartEye.x = -trans->mStartEye.x;
|
||||
@@ -1075,14 +1087,14 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->mRelUseMask == 110 || trans->field_0x49 == 110) {
|
||||
if (trans->mRelUseMask[0] == 'n' || trans->mRelUseMask[1] == 'n') {
|
||||
cSGlobe cStack_7b8(mEye - positionOf(trans->mRelActor));
|
||||
cSAngle acStack_898 = cStack_7b8.U() - directionOf(trans->mRelActor);
|
||||
if (acStack_898 < cSAngle::_0) {
|
||||
if (trans->mRelUseMask == 110) {
|
||||
if (trans->mRelUseMask[0] == 'n') {
|
||||
trans->mStartCenter.x = -trans->mStartCenter.x;
|
||||
}
|
||||
if (trans->field_0x49 == 110) {
|
||||
if (trans->mRelUseMask[1] == 'n') {
|
||||
trans->mStartEye.x = -trans->mStartEye.x;
|
||||
}
|
||||
}
|
||||
@@ -1094,15 +1106,15 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->field_0x4a == 110 || trans->field_0x4b == 110) {
|
||||
if (trans->mRelUseMask[2] == 'n' || trans->mRelUseMask[3] == 'n') {
|
||||
cSGlobe cStack_7c0(mEye - positionOf(trans->mRelActor));
|
||||
cSAngle acStack_89c = cStack_7c0.U() - directionOf(trans->mRelActor);
|
||||
if (acStack_89c < cSAngle::_0) {
|
||||
if (trans->field_0x4a == 110) {
|
||||
if (trans->mRelUseMask[2] == 'n') {
|
||||
trans->mCenter.x = -trans->mCenter.x;
|
||||
}
|
||||
|
||||
if (trans->field_0x4b == 110) {
|
||||
if (trans->mRelUseMask[3] == 'n') {
|
||||
trans->mEye.x = -trans->mEye.x;
|
||||
}
|
||||
}
|
||||
@@ -1114,15 +1126,15 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->mRelUseMask == 78 || trans->field_0x49 == 78) {
|
||||
if (trans->mRelUseMask[0] == 'N' || trans->mRelUseMask[1] == 'N') {
|
||||
cSGlobe cStack_7c8(mEye - positionOf(trans->mRelActor));
|
||||
cSAngle acStack_8a0 = cStack_7c8.U() - directionOf(trans->mRelActor);
|
||||
if (acStack_8a0 > cSAngle::_0) {
|
||||
if (trans->mRelUseMask == 78) {
|
||||
if (trans->mRelUseMask[0] == 'N') {
|
||||
trans->mStartCenter.x = -trans->mStartCenter.x;
|
||||
}
|
||||
|
||||
if (trans->field_0x49 == 78) {
|
||||
if (trans->mRelUseMask[1] == 'N') {
|
||||
trans->mStartEye.x = -trans->mStartEye.x;
|
||||
}
|
||||
}
|
||||
@@ -1134,15 +1146,15 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->field_0x4a == 78 || trans->field_0x4b == 78) {
|
||||
if (trans->mRelUseMask[2] == 'N' || trans->mRelUseMask[3] == 'N') {
|
||||
cSGlobe cStack_7d0(mEye - positionOf(trans->mRelActor));
|
||||
cSAngle acStack_8a4 = cStack_7d0.U() - directionOf(trans->mRelActor);
|
||||
if (acStack_8a4 > cSAngle::_0) {
|
||||
if (trans->field_0x4a == 78) {
|
||||
if (trans->mRelUseMask[2] == 'N') {
|
||||
trans->mCenter.x = -trans->mCenter.x;
|
||||
}
|
||||
|
||||
if (trans->field_0x4b == 78) {
|
||||
if (trans->mRelUseMask[3] == 'N') {
|
||||
trans->mEye.x = -trans->mEye.x;
|
||||
}
|
||||
}
|
||||
@@ -1154,21 +1166,21 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->mRelUseMask == 102) {
|
||||
if (trans->mRelUseMask[0] == 'f') {
|
||||
cSGlobe cStack_7d8(trans->mStartCenter);
|
||||
cStack_7d8.U(directionOf(trans->mRelActor) + cStack_7d8.U());
|
||||
trans->mStartCenter = attentionPos(trans->mRelActor) + cStack_7d8.Xyz();
|
||||
trans->mRelUseMask = 120;
|
||||
trans->mRelUseMask[0] = 'x';
|
||||
}
|
||||
|
||||
if (trans->field_0x49 == 102) {
|
||||
if (trans->mRelUseMask[1] == 'f') {
|
||||
cSGlobe cStack_7e0(trans->mStartEye);
|
||||
cStack_7e0.U(directionOf(trans->mRelActor) + cStack_7e0.U());
|
||||
trans->mStartEye = attentionPos(trans->mRelActor) + cStack_7e0.Xyz();
|
||||
trans->field_0x49 = 120;
|
||||
trans->mRelUseMask[1] = 'x';
|
||||
}
|
||||
|
||||
if (trans->field_0x4a == 112) {
|
||||
if (trans->mRelUseMask[2] == 'p') {
|
||||
cXyz sp114(trans->mCenter);
|
||||
cXyz sp120 = relationalPos(trans->mRelActor, &sp114);
|
||||
f32 fVar1 = cXyz(sp120 - positionOf(mpPlayerActor)).abs();
|
||||
@@ -1178,14 +1190,14 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
if (fVar1 < fVar2) {
|
||||
trans->mCenter.x = -trans->mCenter.x;
|
||||
}
|
||||
} else if (trans->field_0x4a == 102) {
|
||||
} else if (trans->mRelUseMask[2] == 'f') {
|
||||
cSGlobe cStack_7e8(trans->mCenter);
|
||||
cStack_7e8.U(directionOf(trans->mRelActor) + cStack_7e8.U());
|
||||
trans->mCenter = attentionPos(trans->mRelActor) + cStack_7e8.Xyz();
|
||||
trans->field_0x4a = 120;
|
||||
trans->mRelUseMask[2] = 'x';
|
||||
}
|
||||
|
||||
if (trans->field_0x4b == 112) {
|
||||
if (trans->mRelUseMask[3] == 'p') {
|
||||
cXyz sp12c = trans->mEye;
|
||||
cXyz sp138(relationalPos(trans->mRelActor, &sp12c));
|
||||
f32 fVar3 = cXyz(sp138 - positionOf(mpPlayerActor)).abs();
|
||||
@@ -1195,7 +1207,7 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
if (fVar3 < fVar4) {
|
||||
trans->mEye.x = -trans->mEye.x;
|
||||
}
|
||||
} else if (trans->field_0x4b == 114) {
|
||||
} else if (trans->mRelUseMask[3] == 'r') {
|
||||
my_vec_0 = relationalPos(trans->mRelActor, &trans->mCenter);
|
||||
if ((mTicks & 1) != 0) {
|
||||
trans->mEye.x = -trans->mEye.x;
|
||||
@@ -1205,19 +1217,19 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
if (lineBGCheck(&my_vec_0, &my_vec_1, 0x4007)) {
|
||||
trans->mEye.x = -trans->mEye.x;
|
||||
}
|
||||
} else if (trans->field_0x4b == 102) {
|
||||
} else if (trans->mRelUseMask[3] == 'f') {
|
||||
cSGlobe cStack_7f0(trans->mEye);
|
||||
cStack_7f0.U(directionOf(trans->mRelActor) + cStack_7f0.U());
|
||||
trans->mEye = attentionPos(trans->mRelActor) + cStack_7f0.Xyz();
|
||||
trans->field_0x4b = 120;
|
||||
trans->mRelUseMask[3] = 'x';
|
||||
}
|
||||
} else {
|
||||
if (trans->field_0x4a == 97) {
|
||||
if (trans->mRelUseMask[2] == 'a') {
|
||||
cXyz cStack_320 = dCamMath::xyzRotateY(trans->mCenter, cSAngle(mViewCache.mDirection.U().Inv()));
|
||||
trans->mCenter = mViewCache.mCenter + cStack_320;
|
||||
}
|
||||
|
||||
if (trans->field_0x4b == 97) {
|
||||
if (trans->mRelUseMask[3] == 'a') {
|
||||
cXyz cStack_32c = dCamMath::xyzRotateY(trans->mEye, cSAngle(mViewCache.mDirection.U().Inv()));
|
||||
trans->mEye = mViewCache.mEye + cStack_32c;
|
||||
}
|
||||
@@ -1246,47 +1258,47 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
}
|
||||
|
||||
if (trans->mRelActor) {
|
||||
if (trans->mRelUseMask == 116) {
|
||||
if (trans->mRelUseMask[0] == 't') {
|
||||
pos.mXyz_1 = attentionPos(trans->mRelActor) + trans->mStartCenter;
|
||||
} else if (trans->mRelUseMask == 99) {
|
||||
} else if (trans->mRelUseMask[0] == 'c') {
|
||||
cSGlobe cStack_7f8(trans->mStartCenter);
|
||||
cStack_7f8.U(trans->field_0x60.U() + cStack_7f8.U());
|
||||
pos.mXyz_1 = attentionPos(trans->mRelActor) + cStack_7f8.Xyz();
|
||||
} else if (trans->mRelUseMask == 119 || trans->mRelUseMask == 87) {
|
||||
} else if (trans->mRelUseMask[0] == 'w' || trans->mRelUseMask[0] == 'W') {
|
||||
pos.mXyz_1 = relationalPos(trans->mRelActor, &trans->mStartCenter);
|
||||
} else {
|
||||
if (isRelChar(trans->mRelUseMask)) {
|
||||
if (isRelChar(trans->mRelUseMask[0])) {
|
||||
pos.mXyz_1 = relationalPos(trans->mRelActor, &trans->mStartCenter);
|
||||
} else {
|
||||
pos.mXyz_1 = trans->mStartCenter;
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->field_0x49 == 116) {
|
||||
if (trans->mRelUseMask[1] == 't') {
|
||||
pos.mXyz_0 = attentionPos(trans->mRelActor) + trans->mStartEye;
|
||||
} else if (trans->field_0x49 == 99) {
|
||||
} else if (trans->mRelUseMask[1] == 'c') {
|
||||
cSGlobe cStack_800(trans->mStartEye);
|
||||
cStack_800.U(trans->field_0x60.U() + cStack_800.U());
|
||||
pos.mXyz_0 = attentionPos(trans->mRelActor) + cStack_800.Xyz();
|
||||
} else if (trans->field_0x49 == 119 || trans->field_0x49 == 87) {
|
||||
} else if (trans->mRelUseMask[1] == 'w' || trans->mRelUseMask[1] == 'W') {
|
||||
pos.mXyz_0 = relationalPos(trans->mRelActor, &trans->mStartEye);
|
||||
} else {
|
||||
if (isRelChar(trans->field_0x49)) {
|
||||
if (isRelChar(trans->mRelUseMask[1])) {
|
||||
pos.mXyz_0 = relationalPos(trans->mRelActor, &trans->mStartEye);
|
||||
} else {
|
||||
pos.mXyz_0 = trans->mStartEye;
|
||||
}
|
||||
}
|
||||
|
||||
if (trans->field_0x4a == 116) {
|
||||
if (trans->mRelUseMask[2] == 't') {
|
||||
pos2.mXyz_1 = attentionPos(trans->mRelActor) + trans->mCenter;
|
||||
} else if (trans->field_0x4a == 99) {
|
||||
} else if (trans->mRelUseMask[2] == 'c') {
|
||||
cSGlobe cStack_808(trans->mCenter);
|
||||
cStack_808.U(trans->field_0x60.U() + cStack_808.U());
|
||||
pos2.mXyz_1 = attentionPos(trans->mRelActor) + cStack_808.Xyz();
|
||||
} else if (trans->field_0x4a == 119 || trans->field_0x4a == 87) {
|
||||
} else if (trans->mRelUseMask[2] == 'w' || trans->mRelUseMask[2] == 'W') {
|
||||
pos2.mXyz_1 = relationalPos(trans->mRelActor, &trans->mCenter);
|
||||
} else if (isRelChar(trans->field_0x4a)) {
|
||||
} else if (isRelChar(trans->mRelUseMask[2])) {
|
||||
pos2.mXyz_1 = relationalPos(trans->mRelActor, &trans->mCenter);
|
||||
} else if (trans->mTransType == 2) {
|
||||
pos2.mXyz_1 = dCamMath::xyzRotateY(trans->mCenter, directionOf(trans->mRelActor));
|
||||
@@ -1294,16 +1306,16 @@ bool dCamera_c::transEvCamera(int param_1) {
|
||||
pos2.mXyz_1 = trans->mCenter;
|
||||
}
|
||||
|
||||
if (trans->field_0x4b == 116) {
|
||||
if (trans->mRelUseMask[3] == 't') {
|
||||
pos2.mXyz_0 = attentionPos(trans->mRelActor) + trans->mEye;
|
||||
} else if (trans->field_0x4b == 99) {
|
||||
} else if (trans->mRelUseMask[3] == 'c') {
|
||||
cSGlobe cStack_810(trans->mEye);
|
||||
cStack_810.U(trans->field_0x60.U() + cStack_810.U());
|
||||
pos2.mXyz_0 = attentionPos(trans->mRelActor) + cStack_810.Xyz();
|
||||
} else {
|
||||
if (trans->field_0x4b == 119 || trans->field_0x4b == 87) {
|
||||
if (trans->mRelUseMask[3] == 'w' || trans->mRelUseMask[3] == 'W') {
|
||||
pos2.mXyz_0 = relationalPos(trans->mRelActor, &trans->mEye);
|
||||
} else if (isRelChar(trans->field_0x4b)) {
|
||||
} else if (isRelChar(trans->mRelUseMask[3])) {
|
||||
pos2.mXyz_0 = relationalPos(trans->mRelActor, &trans->mEye);
|
||||
} else if (trans->mTransType == 2) {
|
||||
pos2.mXyz_0 = dCamMath::xyzRotateY(trans->mEye, directionOf(trans->mRelActor));
|
||||
@@ -3420,11 +3432,11 @@ bool dCamera_c::fixedFramesEvCamera() {
|
||||
|
||||
|
||||
fframes_p->field_0x0 = getEvIntData(&fframes_p->mTimer, "Timer", const_1_val);
|
||||
getEvStringData(&fframes_p->mRelUseMask, "RelUseMask", "oo");
|
||||
getEvStringData(fframes_p->mRelUseMask, "RelUseMask", "oo");
|
||||
#if DEBUG
|
||||
if (strlen(&fframes_p->mRelUseMask) != 2) {
|
||||
if (strlen(fframes_p->mRelUseMask) != 2) {
|
||||
OSReport("camera: event: bad length -> xx\n");
|
||||
strcpy(&fframes_p->mRelUseMask, "xx");
|
||||
SAFE_STRCPY(fframes_p->mRelUseMask, "xx");
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), "d_ev_camera.cpp", 0x129c, "Halt");
|
||||
OSPanic("d_ev_camera.cpp", 0x129c, "Halt");
|
||||
}
|
||||
@@ -3442,13 +3454,13 @@ bool dCamera_c::fixedFramesEvCamera() {
|
||||
sp30 = fframes_p->field_0x1c[1][iVar1];
|
||||
sp3c = fframes_p->field_0x1c[0][iVar1];
|
||||
|
||||
if (fframes_p->mRelActor && fframes_p->mRelUseMask == 111) {
|
||||
if (fframes_p->mRelActor && fframes_p->mRelUseMask[0] == 111) {
|
||||
fframes_p->field_0x4 = relationalPos(fframes_p->mRelActor, &sp30);
|
||||
} else {
|
||||
fframes_p->field_0x4 = sp30;
|
||||
}
|
||||
|
||||
if (fframes_p->mRelActor && fframes_p->field_0x31 == 111) {
|
||||
if (fframes_p->mRelActor && fframes_p->mRelUseMask[1] == 111) {
|
||||
fframes_p->field_0x10 = relationalPos(fframes_p->mRelActor, &sp3c);
|
||||
} else {
|
||||
fframes_p->field_0x10 = sp3c;
|
||||
@@ -3959,7 +3971,7 @@ bool dCamera_c::bspTransEvCamera() {
|
||||
|
||||
bspTrans->mSet1 = 0;
|
||||
char use1[8];
|
||||
strcpy(use1, "xxxxxx");
|
||||
SAFE_STRCPY(use1, "xxxxxx");
|
||||
|
||||
iVar1 = getEvFloatListData(&bspTrans->mSet1, "Set1");
|
||||
if (iVar1 != 0) {
|
||||
@@ -3970,7 +3982,7 @@ bool dCamera_c::bspTransEvCamera() {
|
||||
#if DEBUG
|
||||
if (strlen(use1) != 6) {
|
||||
OSReport("camera: event: bad length -> xxxxxx\n");
|
||||
strcpy(use1, "xxxxxx");
|
||||
SAFE_STRCPY(use1, "xxxxxx");
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), "d_ev_camera.cpp", 0x14f9, "0");
|
||||
OSPanic("d_ev_camera.cpp", 0x14f9, "Halt");
|
||||
}
|
||||
@@ -3979,7 +3991,7 @@ bool dCamera_c::bspTransEvCamera() {
|
||||
|
||||
bspTrans->mSet2 = 0;
|
||||
char use2[8];
|
||||
strcpy(use2, "xxxxxx");
|
||||
SAFE_STRCPY(use2, "xxxxxx");
|
||||
|
||||
iVar1 = getEvFloatListData(&bspTrans->mSet2, "Set2");
|
||||
if (iVar1 != 0) {
|
||||
@@ -3990,7 +4002,7 @@ bool dCamera_c::bspTransEvCamera() {
|
||||
#if DEBUG
|
||||
if (strlen(use2) != 6) {
|
||||
OSReport_Error("camera: event: bad length -> xxxxxx\n");
|
||||
strcpy(use2, "xxxxxx");
|
||||
SAFE_STRCPY(use2, "xxxxxx");
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), "d_ev_camera.cpp", 0x1509, "0");
|
||||
OSPanic("d_ev_camera.cpp", 0x1509, "Halt");
|
||||
}
|
||||
@@ -4000,12 +4012,12 @@ bool dCamera_c::bspTransEvCamera() {
|
||||
bspTrans->mRelActorID = -1;
|
||||
bspTrans->mRelActor = getEvActor("RelActor");
|
||||
if (bspTrans->mRelActor) {
|
||||
getEvStringData(&bspTrans->mRelUseMask, "RelUseMask", "oo");
|
||||
getEvStringData(bspTrans->mRelUseMask, "RelUseMask", "oo");
|
||||
|
||||
#if DEBUG
|
||||
if (strlen(&bspTrans->mRelUseMask) != 2) {
|
||||
if (strlen(bspTrans->mRelUseMask) != 2) {
|
||||
OSReport_Error("camera: event: bad length -> xx\n");
|
||||
strcpy(&bspTrans->mRelUseMask, "xx");
|
||||
SAFE_STRCPY(bspTrans->mRelUseMask, "xx");
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), "d_ev_camera.cpp", 0x1515, "0");
|
||||
OSPanic("d_ev_camera.cpp", 0x1515, "Halt");
|
||||
}
|
||||
@@ -4041,13 +4053,13 @@ bool dCamera_c::bspTransEvCamera() {
|
||||
} pos;
|
||||
|
||||
if (bspTrans->mRelActor != NULL) {
|
||||
if (isRelChar(bspTrans->mRelUseMask)) {
|
||||
if (isRelChar(bspTrans->mRelUseMask[0])) {
|
||||
pos.sp48 = relationalPos(bspTrans->mRelActor, &bspTrans->field_0x94);
|
||||
} else {
|
||||
pos.sp48 = bspTrans->field_0x94;
|
||||
}
|
||||
|
||||
if (isRelChar(bspTrans->field_0xb9)) {
|
||||
if (isRelChar(bspTrans->mRelUseMask[1])) {
|
||||
pos.sp3c = relationalPos(bspTrans->mRelActor, &bspTrans->field_0xa0);
|
||||
} else {
|
||||
pos.sp3c = bspTrans->field_0xa0;
|
||||
|
||||
+7
-5
@@ -13,6 +13,8 @@
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
namespace {
|
||||
static u8 event_debug_evnt() {
|
||||
#if DEBUG
|
||||
@@ -762,8 +764,8 @@ int dEv_defaultSkipZev(void* actor, int parameter) {
|
||||
char* skipName;
|
||||
switch (parameter) {
|
||||
case 0:
|
||||
strcpy(eventName, data->data.event_name);
|
||||
strcat(eventName, "$0");
|
||||
SAFE_STRCPY(eventName, data->data.event_name);
|
||||
SAFE_STRCAT(eventName, "$0");
|
||||
eventID = dComIfGp_getEventManager().getEventIdx(eventName, 0xFF, -1);
|
||||
OS_REPORT("%06d: event: [%d] %s!\n", g_Counter.mCounter0, eventID, eventName);
|
||||
break;
|
||||
@@ -810,8 +812,8 @@ int dEv_defaultSkipStb(void* actor, int parameter) {
|
||||
char* skipName;
|
||||
switch (parameter) {
|
||||
case 0:
|
||||
strcpy(eventName, data->data.event_name);
|
||||
strcat(eventName, "$0");
|
||||
SAFE_STRCPY(eventName, data->data.event_name);
|
||||
SAFE_STRCAT(eventName, "$0");
|
||||
eventID = dComIfGp_getEventManager().getEventIdx(eventName, 0xFF, -1);
|
||||
OS_REPORT("%06d: event: [%d] %s!\n", g_Counter.mCounter0, eventID, eventName);
|
||||
break;
|
||||
@@ -857,7 +859,7 @@ void dEvt_control_c::setSkipProc(void* skipActor, dEvt_SkipCb skipCb, int skipPa
|
||||
|
||||
void dEvt_control_c::setSkipZev(void* skipActor, char* eventName) {
|
||||
setSkipProc(skipActor, dEv_defaultSkipZev, 1);
|
||||
strcpy(mSkipEventName, eventName);
|
||||
SAFE_STRCPY(mSkipEventName, eventName);
|
||||
}
|
||||
|
||||
void dEvt_control_c::onSkipFade() {
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#include "dusk/randomizer/game/verify_item_functions.h"
|
||||
#endif
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
#if DEBUG
|
||||
static dEvM_HIO_c l_HIO;
|
||||
#endif
|
||||
@@ -397,7 +399,7 @@ void dEvent_manager_c::roomInit(int roomNo) {
|
||||
}
|
||||
|
||||
char arcname[8];
|
||||
strcpy(arcname, dComIfG_getRoomArcName(roomNo));
|
||||
SAFE_STRCPY(arcname, dComIfG_getRoomArcName(roomNo));
|
||||
char* res = (char*)dComIfG_getStageRes(arcname, DataFileName);
|
||||
|
||||
int i;
|
||||
@@ -845,7 +847,7 @@ s16 dEvent_manager_c::getEventIdx(const char* eventName, u8 mapToolID, s32 roomN
|
||||
case dStage_MapEvent_dt_TYPE_STB:
|
||||
return getEventIdx(mapdata->data.event_name, 0xFF, roomNo);
|
||||
case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA:
|
||||
sprintf(map_tool_name, "MapToolCamera%d", mapToolID);
|
||||
SAFE_SPRINTF(map_tool_name, "MapToolCamera%d", mapToolID);
|
||||
return getEventIdx(map_tool_name, 0xFF, roomNo);
|
||||
default:
|
||||
JUT_ASSERT(1278, FALSE);
|
||||
@@ -885,7 +887,7 @@ s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* actor, u8 mapToolID) {
|
||||
case dStage_MapEvent_dt_TYPE_STB:
|
||||
return getEventIdx(actor, mapdata->data.event_name, 0xFF);
|
||||
case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA:
|
||||
sprintf(map_tool_name, "MapToolCamera%d", mapToolID);
|
||||
SAFE_SPRINTF(map_tool_name, "MapToolCamera%d", mapToolID);
|
||||
return getEventIdx(actor, map_tool_name, 0xFF);
|
||||
default:
|
||||
JUT_ASSERT(1341, FALSE);
|
||||
@@ -910,7 +912,7 @@ s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* actor, const char* eventName, u8 m
|
||||
case dStage_MapEvent_dt_TYPE_STB:
|
||||
return getEventIdx(actor, mapdata->data.event_name, 0xFF);
|
||||
case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA:
|
||||
sprintf(map_tool_name, "MapToolCamera%d", mapToolID);
|
||||
SAFE_SPRINTF(map_tool_name, "MapToolCamera%d", mapToolID);
|
||||
return getEventIdx(actor, map_tool_name, 0xFF);
|
||||
default:
|
||||
JUT_ASSERT(1376, FALSE);
|
||||
@@ -1049,7 +1051,7 @@ int dEvent_manager_c::getMyStaffId(const char* staffName, fopAc_ac_c* actor, int
|
||||
dEvDtStaff_c* staff = getBase().getStaffP(staff_id);
|
||||
if (staff->getType() != dEvDtStaff_c::TYPE_ALL) {
|
||||
char buf[20];
|
||||
strcpy(buf, staff->getName());
|
||||
SAFE_STRCPY(buf, staff->getName());
|
||||
|
||||
char* ptr = NULL;
|
||||
if (!hasDp) {
|
||||
@@ -1319,7 +1321,7 @@ void dEvent_manager_c::issueStaff(const char* staffname) {
|
||||
fopAcM_Search((fopAcIt_JudgeFunc)extraOnObjectCallBack, NULL);
|
||||
} else {
|
||||
char nameBuf[32];
|
||||
strcpy(nameBuf, staffname);
|
||||
SAFE_STRCPY(nameBuf, staffname);
|
||||
fopAc_ac_c* actor = fopAcM_searchFromName4Event(nameBuf, -1);
|
||||
fopAcM_OnStatus(actor, fopAcStts_STAFF_EXTRA_e);
|
||||
}
|
||||
@@ -1330,7 +1332,7 @@ void dEvent_manager_c::cancelStaff(const char* staffname) {
|
||||
fopAcM_Search((fopAcIt_JudgeFunc)extraOffObjectCallBack, NULL);
|
||||
} else {
|
||||
char nameBuf[32];
|
||||
strcpy(nameBuf, staffname);
|
||||
SAFE_STRCPY(nameBuf, staffname);
|
||||
fopAc_ac_c* actor = fopAcM_searchFromName4Event(nameBuf, -1);
|
||||
fopAcM_OffStatus(actor, fopAcStts_STAFF_EXTRA_e);
|
||||
}
|
||||
|
||||
+13
-10
@@ -14,6 +14,7 @@
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
#include "dusk/version.hpp"
|
||||
|
||||
dFile_info_c::dFile_info_c(JKRArchive* i_archive, u8 param_1) {
|
||||
@@ -80,9 +81,11 @@ void dFile_info_c::screenSet() {
|
||||
info_text[2] = (J2DTextBox*)mFileInfo.Scr->search(MULTI_CHAR('w_time01'));
|
||||
info_text[3] = (J2DTextBox*)mFileInfo.Scr->search(MULTI_CHAR('w_ptim01'));
|
||||
|
||||
#define INFO_TEXT_SIZE 0x40
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
info_text[i]->setFont(mFileInfo.mFont);
|
||||
info_text[i]->setString(0x40, "");
|
||||
info_text[i]->setString(INFO_TEXT_SIZE, "");
|
||||
}
|
||||
mPlayerName = info_text[0]->getStringPtr();
|
||||
mSaveStatus = info_text[1]->getStringPtr();
|
||||
@@ -99,9 +102,9 @@ int dFile_info_c::setSaveData(dSv_save_c* i_savedata, BOOL i_validChksum, u8 i_d
|
||||
i_savedata->getPlayer().getPlayerStatusA().setLife(dComIfGs_getLife());
|
||||
setHeartCnt(i_savedata);
|
||||
i_savedata->getPlayer().getPlayerStatusA().setLife(12);
|
||||
strcpy(mPlayerName, dComIfGs_getPlayerName());
|
||||
strcpy(mSaveDate, "");
|
||||
strcpy(mPlayTime, "");
|
||||
SAFE_STRCPY(mPlayerName, dComIfGs_getPlayerName());
|
||||
SAFE_STRCPY(mSaveDate, "");
|
||||
SAFE_STRCPY(mPlayTime, "");
|
||||
dMeter2Info_getString(0x4D, mSaveStatus, NULL); // New Quest Log
|
||||
result = 2;
|
||||
} else {
|
||||
@@ -110,7 +113,7 @@ int dFile_info_c::setSaveData(dSv_save_c* i_savedata, BOOL i_validChksum, u8 i_d
|
||||
}
|
||||
} else {
|
||||
setHeartCnt(i_savedata);
|
||||
strcpy(mPlayerName, player_name);
|
||||
SAFE_STRCPY(mPlayerName, player_name);
|
||||
setSaveDate(i_savedata);
|
||||
setPlayTime(i_savedata);
|
||||
result = 0;
|
||||
@@ -173,13 +176,13 @@ void dFile_info_c::setSaveDate(dSv_save_c* i_savedata) {
|
||||
|
||||
#if TARGET_PC
|
||||
if (dusk::version::isRegionJpn()) {
|
||||
sprintf(mSaveDate, "%d.%02d.%02d %02d:%02d", time.year, time.mon + 1, time.mday,
|
||||
SAFE_SPRINTF(mSaveDate, "%d.%02d.%02d %02d:%02d", time.year, time.mon + 1, time.mday,
|
||||
time.hour, time.min);
|
||||
} else if (dusk::version::isRegionPal() && dComIfGs_getPalLanguage() != dSv_player_config_c::LANGUAGE_ENGLISH) {
|
||||
sprintf(mSaveDate, "%02d/%02d/%d %02d:%02d", time.mday, time.mon + 1, time.year, time.hour,
|
||||
SAFE_SPRINTF(mSaveDate, "%02d/%02d/%d %02d:%02d", time.mday, time.mon + 1, time.year, time.hour,
|
||||
time.min);
|
||||
} else {
|
||||
sprintf(mSaveDate, "%02d/%02d/%d %02d:%02d", time.mon + 1, time.mday, time.year, time.hour,
|
||||
SAFE_SPRINTF(mSaveDate, "%02d/%02d/%d %02d:%02d", time.mon + 1, time.mday, time.year, time.hour,
|
||||
time.min);
|
||||
}
|
||||
#elif (VERSION == VERSION_GCN_JPN) || (VERSION == VERSION_WII_JPN)
|
||||
@@ -204,11 +207,11 @@ void dFile_info_c::setPlayTime(dSv_save_c* i_savedata) {
|
||||
|
||||
// 3599940 = 999:59 in seconds
|
||||
if (time >= 3599940) {
|
||||
sprintf(mPlayTime, "999:59");
|
||||
SAFE_SPRINTF(mPlayTime, "999:59");
|
||||
} else {
|
||||
u32 min = (time % 3600) / 60;
|
||||
u32 hours = time / 3600;
|
||||
sprintf(mPlayTime, "%d:%02d", hours, min);
|
||||
SAFE_SPRINTF(mPlayTime, "%d:%02d", hours, min);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
static s32 SelStartFrameTbl[3] = {
|
||||
59,
|
||||
99,
|
||||
@@ -3513,7 +3515,7 @@ void dFile_select_c::headerTxtSet(u16 i_msgId, u8 i_type, u8 param_3) {
|
||||
}
|
||||
|
||||
if (i_msgId == 0xFFFF) {
|
||||
strcpy(mHeaderStringPtr[dispIdx], "");
|
||||
SAFE_STRCPY(mHeaderStringPtr[dispIdx], "");
|
||||
} else {
|
||||
static f32 fontsize[2] = {21.0f, 27.0f};
|
||||
#if VERSION == VERSION_GCN_JPN
|
||||
@@ -4188,7 +4190,7 @@ void dFile_select_c::errDispInitSet(char* i_errMesg) {
|
||||
mErrorMsgTxtPane[mErrorTxtDispIdx]->setAlpha(0xFF);
|
||||
mErrorMsgTxtPane[mErrorTxtDispIdx ^ 1]->setAlpha(0);
|
||||
|
||||
strcpy(mErrorMsgStringPtr[mErrorTxtDispIdx], i_errMesg);
|
||||
SAFE_STRCPY_BOUNDED(mErrorMsgStringPtr[mErrorTxtDispIdx], i_errMesg);
|
||||
|
||||
if (field_0x014a) {
|
||||
errorMoveAnmInitSet(2859, 2849);
|
||||
@@ -4397,7 +4399,7 @@ void dFile_select_c::MemCardLoadWait() {
|
||||
if (mDoMemCd_getDataVersion() != 6) {
|
||||
char errmsg[264];
|
||||
// "Savedata version is different\n\nVersion %d\n\nFormatting data."
|
||||
sprintf(errmsg, "セーブデータのバージョンが違います\n\nバージョン %d\n\nデータを初期化します。", mDoMemCd_getDataVersion());
|
||||
SAFE_SPRINTF(errmsg, "セーブデータのバージョンが違います\n\nバージョン %d\n\nデータを初期化します。", mDoMemCd_getDataVersion());
|
||||
errDispInitSet(errmsg);
|
||||
field_0x0280 = false;
|
||||
mWindowCloseMsgDispCb = NULL;
|
||||
@@ -5243,7 +5245,7 @@ void dFile_select_c::MemCardErrYesNoCursorMoveAnm() {
|
||||
|
||||
void dFile_select_c::errorTxtSet(u16 i_msgId) {
|
||||
if (i_msgId == 0xffff) {
|
||||
strcpy(mErrorMsgStringPtr[mErrorTxtDispIdx ^ 1], "");
|
||||
SAFE_STRCPY(mErrorMsgStringPtr[mErrorTxtDispIdx ^ 1], "");
|
||||
} else {
|
||||
fileSel.mMessageString->getString(
|
||||
i_msgId, (J2DTextBox*)mErrorMsgTxtPane[mErrorTxtDispIdx ^ 1]->getPanePtr(), NULL,
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include <cstring>
|
||||
|
||||
// Need 0xC bytes of padding with no symbol between dMenu_Calibration_c::__vtable and the end of .data
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
// Need 0xC bytes of padding with no symbol between dMenu_Calibration_c::__vtable and the end of
|
||||
// .data
|
||||
// This is likely caused by the vtable of an abstract base class getting put there and then stripped out.
|
||||
// Not sure which abstract base class could go there though, so we simulate it with some dummy classes for now.
|
||||
class dummy_abstract_class {
|
||||
@@ -252,7 +255,7 @@ void dMenu_Calibration_c::setCalibrationValue() {
|
||||
void dMenu_Calibration_c::setAButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpAButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpAButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -264,7 +267,7 @@ void dMenu_Calibration_c::setAButtonString(u16 i_stringID) {
|
||||
void dMenu_Calibration_c::setBButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpBButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpBButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -276,7 +279,7 @@ void dMenu_Calibration_c::setBButtonString(u16 i_stringID) {
|
||||
void dMenu_Calibration_c::setStepString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
strcpy(mpStepString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpStepString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
@@ -288,7 +291,7 @@ void dMenu_Calibration_c::setStepString(u16 i_stringID) {
|
||||
void dMenu_Calibration_c::setExplainString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
strcpy(mpExplainString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpExplainString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
|
||||
+21
-21
@@ -2245,18 +2245,18 @@ void dMenu_Collect2D_c::_draw() {
|
||||
|
||||
if (mItemNameString == 0) {
|
||||
#if REGION_JPN
|
||||
char* stringPtr1 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('i_text1')))->getStringPtr();
|
||||
TEXT_SPAN stringPtr1 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('i_text1')))->getStringPtr();
|
||||
#else
|
||||
char* stringPtr1 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('f_text1')))->getStringPtr();
|
||||
TEXT_SPAN stringPtr1 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('f_text1')))->getStringPtr();
|
||||
#endif
|
||||
strcpy(stringPtr1, "");
|
||||
SAFE_STRCPY(stringPtr1, "");
|
||||
|
||||
#if REGION_JPN
|
||||
char* stringPtr0 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('i_text0')))->getStringPtr();
|
||||
TEXT_SPAN stringPtr0 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('i_text0')))->getStringPtr();
|
||||
#else
|
||||
char* stringPtr0 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('f_text0')))->getStringPtr();
|
||||
TEXT_SPAN stringPtr0 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('f_text0')))->getStringPtr();
|
||||
#endif
|
||||
strcpy(stringPtr0, "");
|
||||
SAFE_STRCPY(stringPtr0, "");
|
||||
} else {
|
||||
#if REGION_JPN
|
||||
J2DTextBox* textBox1 = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('i_text1')));
|
||||
@@ -2307,13 +2307,13 @@ void dMenu_Collect2D_c::setAButtonString(u16 i_stringID) {
|
||||
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
char* stringPtr =
|
||||
TEXT_SPAN stringPtr =
|
||||
static_cast<J2DTextBox*>(mpScreenIcon->search(text_a_tag[i]))->getStringPtr();
|
||||
strcpy(stringPtr, "");
|
||||
SAFE_STRCPY(stringPtr, "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
char* stringPtr =
|
||||
TEXT_SPAN stringPtr =
|
||||
static_cast<J2DTextBox*>(mpScreenIcon->search(text_a_tag[i]))->getStringPtr();
|
||||
dMeter2Info_getStringKanji(i_stringID, stringPtr, NULL);
|
||||
}
|
||||
@@ -2331,13 +2331,13 @@ void dMenu_Collect2D_c::setBButtonString(u16 i_stringID) {
|
||||
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
char* stringPtr =
|
||||
TEXT_SPAN stringPtr =
|
||||
static_cast<J2DTextBox*>(mpScreenIcon->search(text_b_tag[i]))->getStringPtr();
|
||||
strcpy(stringPtr, "");
|
||||
SAFE_STRCPY(stringPtr, "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
char* stringPtr =
|
||||
TEXT_SPAN stringPtr =
|
||||
static_cast<J2DTextBox*>(mpScreenIcon->search(text_b_tag[i]))->getStringPtr();
|
||||
dMeter2Info_getStringKanji(i_stringID, stringPtr, NULL);
|
||||
}
|
||||
@@ -2356,7 +2356,7 @@ void dMenu_Collect2D_c::setItemNameString(u8 param_0, u8 param_1) {
|
||||
setItemNameStringNull();
|
||||
} else {
|
||||
#if REGION_JPN
|
||||
char* stringPtr =
|
||||
TEXT_SPAN stringPtr =
|
||||
static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('item_n00')))->getStringPtr();
|
||||
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
|
||||
stringPtr = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('item_n01')))->getStringPtr();
|
||||
@@ -2366,7 +2366,7 @@ void dMenu_Collect2D_c::setItemNameString(u8 param_0, u8 param_1) {
|
||||
stringPtr = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('item_n03')))->getStringPtr();
|
||||
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
|
||||
#else
|
||||
char* stringPtr =
|
||||
TEXT_SPAN stringPtr =
|
||||
static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('item_n04')))->getStringPtr();
|
||||
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
|
||||
stringPtr = static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('item_n05')))->getStringPtr();
|
||||
@@ -2384,22 +2384,22 @@ void dMenu_Collect2D_c::setItemNameStringNull() {
|
||||
mItemNameString = 0;
|
||||
#if REGION_JPN
|
||||
J2DTextBox* textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n00'));
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n01'));
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n02'));
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n03'));
|
||||
#else
|
||||
J2DTextBox* textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n04'));
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n05'));
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n06'));
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
textBox = (J2DTextBox*)mpScreen->search(MULTI_CHAR('item_n07'));
|
||||
#endif
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
}
|
||||
|
||||
dMenu_Collect3D_c::dMenu_Collect3D_c(JKRExpHeap* param_0, dMenu_Collect2D_c* param_1,
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
#if (PLATFORM_WII || PLATFORM_SHIELD)
|
||||
#define POINTER_OPT dComIfGs_getOptPointer()
|
||||
#else
|
||||
@@ -116,9 +118,9 @@ dMenu_DmapBg_c::dMenu_DmapBg_c(JKRExpHeap* i_heap, STControl* i_stick) {
|
||||
mapScreenInit();
|
||||
|
||||
char archive_path[32];
|
||||
strcpy(archive_path, "/res/FieldMap/D_MN10.arc");
|
||||
SAFE_STRCPY(archive_path, "/res/FieldMap/D_MN10.arc");
|
||||
char stage_name[8];
|
||||
strcpy(stage_name, dComIfGp_getStartStageName());
|
||||
SAFE_STRCPY(stage_name, dComIfGp_getStartStageName());
|
||||
archive_path[18] = stage_name[4];
|
||||
archive_path[19] = stage_name[5];
|
||||
|
||||
@@ -392,7 +394,7 @@ void dMenu_DmapBg_c::setAButtonString(u32 i_msgNo) {
|
||||
};
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (i_msgNo == 0) {
|
||||
strcpy(((J2DTextBox*)mButtonScreen->search(cont_at[i]))->getStringPtr(), "");
|
||||
SAFE_STRCPY(((J2DTextBox*)mButtonScreen->search(cont_at[i]))->getStringPtr(), "");
|
||||
} else {
|
||||
dMeter2Info_getStringKanji(i_msgNo, ((J2DTextBox*)mButtonScreen->search(cont_at[i]))->getStringPtr(), NULL);
|
||||
}
|
||||
@@ -409,7 +411,7 @@ void dMenu_DmapBg_c::setBButtonString(u32 i_msgNo) {
|
||||
};
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (i_msgNo == 0) {
|
||||
strcpy(((J2DTextBox*)mButtonScreen->search(cont_bt[i]))->getStringPtr(), "");
|
||||
SAFE_STRCPY(((J2DTextBox*)mButtonScreen->search(cont_bt[i]))->getStringPtr(), "");
|
||||
} else {
|
||||
dMeter2Info_getStringKanji(i_msgNo, ((J2DTextBox*)mButtonScreen->search(cont_bt[i]))->getStringPtr(), NULL);
|
||||
}
|
||||
@@ -441,7 +443,7 @@ void dMenu_DmapBg_c::setCButtonString(u32 i_msgNo) {
|
||||
|
||||
if (msgNo == 0) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
strcpy(((J2DTextBox*)mButtonScreen->search(c_tag[i]))->getStringPtr(), "");
|
||||
SAFE_STRCPY(((J2DTextBox*)mButtonScreen->search(c_tag[i]))->getStringPtr(), "");
|
||||
}
|
||||
mpCButton->setAlphaRate(0.5f);
|
||||
} else {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
#include "dusk/version.hpp"
|
||||
|
||||
typedef void (dMenu_Fishing_c::*initFunc)();
|
||||
@@ -372,7 +373,7 @@ void dMenu_Fishing_c::screenSetDoIcon() {
|
||||
void dMenu_Fishing_c::setAButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpAButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpAButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -384,7 +385,7 @@ void dMenu_Fishing_c::setAButtonString(u16 i_stringID) {
|
||||
void dMenu_Fishing_c::setBButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpBButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpBButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -419,29 +420,29 @@ void dMenu_Fishing_c::setFishParam(int i_fishIdx, u16 i_fishCount, u8 i_fishSize
|
||||
dComIfGp_setMessageCountNumber(i_fishSize);
|
||||
mpString->getString(0x597, field_0x10c[i][i_fishIdx], NULL, NULL, NULL, 0); // "inches"
|
||||
char* stringPtr = field_0x10c[i][i_fishIdx]->getStringPtr();
|
||||
strcpy(strBuff1, stringPtr);
|
||||
SAFE_STRCPY(strBuff1, stringPtr);
|
||||
int j;
|
||||
for (j = 0; strBuff1[j + fishSizeFigure] != 0; j++) {
|
||||
strBuff2[j] = strBuff1[j + fishSizeFigure];
|
||||
}
|
||||
strBuff2[j] = 0;
|
||||
strBuff1[fishSizeFigure] = 0;
|
||||
strcpy(field_0x10c[i][i_fishIdx]->getStringPtr(), strBuff1);
|
||||
strcpy(field_0x16c[i][i_fishIdx]->getStringPtr(), strBuff2);
|
||||
SAFE_STRCPY(field_0x10c[i][i_fishIdx]->getStringPtr(), strBuff1);
|
||||
SAFE_STRCPY(field_0x16c[i][i_fishIdx]->getStringPtr(), strBuff2);
|
||||
|
||||
// part two, i_fishCount
|
||||
dComIfGp_setMessageCountNumber(i_fishCount);
|
||||
mpString->getString(0x598, field_0x13c[i][i_fishIdx], NULL, NULL, NULL, 0); // "fish"
|
||||
stringPtr = field_0x13c[i][i_fishIdx]->getStringPtr();
|
||||
strcpy(strBuff1, stringPtr);
|
||||
SAFE_STRCPY(strBuff1, stringPtr);
|
||||
int k;
|
||||
for (k = 0; strBuff1[k + fishCountFigure] != 0; k++) {
|
||||
strBuff2[k] = strBuff1[k + fishCountFigure];
|
||||
}
|
||||
strBuff2[k] = 0;
|
||||
strBuff1[fishCountFigure] = 0;
|
||||
strcpy(field_0x13c[i][i_fishIdx]->getStringPtr(), strBuff1);
|
||||
strcpy(field_0x19c[i][i_fishIdx]->getStringPtr(), strBuff2);
|
||||
SAFE_STRCPY(field_0x13c[i][i_fishIdx]->getStringPtr(), strBuff1);
|
||||
SAFE_STRCPY(field_0x19c[i][i_fishIdx]->getStringPtr(), strBuff2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+24
-23
@@ -22,6 +22,7 @@
|
||||
#include "d/d_msg_scrn_explain.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "dusk/memory.h"
|
||||
#include "dusk/string.hpp"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
|
||||
static dMf_HIO_c g_fmHIO;
|
||||
@@ -126,7 +127,7 @@ const char* dMenuFmap_getStartStageName(void* i_fieldData) {
|
||||
if (!strcmp(dComIfGp_getStartStageName(), data[i].mStageName)) {
|
||||
// !@bug: probably supposed to be data[i].mVirtualStageName, but doesn't matter
|
||||
// because the two entries have the same virtual stage name
|
||||
strcpy(virtual_stage, data->mVirtualStageName);
|
||||
SAFE_STRCPY(virtual_stage, data->mVirtualStageName);
|
||||
return virtual_stage;
|
||||
}
|
||||
}
|
||||
@@ -197,7 +198,7 @@ dMenu_Fmap_c::dMenu_Fmap_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
|
||||
mIsWarpMap = false;
|
||||
|
||||
mProcess = PROC_REGION_MAP;
|
||||
strcpy(mMarkedStageName, "");
|
||||
SAFE_STRCPY(mMarkedStageName, "");
|
||||
if (g_fmapHIO.mpArcData != NULL && g_fmapHIO.mpArcData->isMounted()) {
|
||||
mProcess = i_process;
|
||||
mpMapArchive = g_fmapHIO.mpArcData;
|
||||
@@ -1863,7 +1864,7 @@ bool dMenu_Fmap_c::isRoomCheck(int i_stageNo, int i_roomNo) {
|
||||
for (; i < mDataNumMax; i++) {
|
||||
if (checked_data[i]) continue;
|
||||
|
||||
strcpy(stage_name, stages[i].mName);
|
||||
SAFE_STRCPY(stage_name, stages[i].mName);
|
||||
|
||||
for (int k = 0; k < 64; k++) {
|
||||
local_e0[k] = false;
|
||||
@@ -2082,14 +2083,14 @@ bool dMenu_Fmap_c::readAreaData(u8 i_regionNo, bool i_isSelectedRegion) {
|
||||
for (; i < mDataNumMax; i++) {
|
||||
if (checked_data[i]) continue;
|
||||
|
||||
strcpy(tmp_stage_name, mTmpStageName);
|
||||
SAFE_STRCPY(tmp_stage_name, mTmpStageName);
|
||||
resetRoomDataBit();
|
||||
if (i_isSelectedRegion) {
|
||||
strcpy(mTmpStageName, stages[i].mName);
|
||||
SAFE_STRCPY(mTmpStageName, stages[i].mName);
|
||||
} else {
|
||||
strcpy(mTmpStageName, tmp_stage_name);
|
||||
SAFE_STRCPY(mTmpStageName, tmp_stage_name);
|
||||
}
|
||||
strcpy(tmp_stage_name, stages[i].mName);
|
||||
SAFE_STRCPY(tmp_stage_name, stages[i].mName);
|
||||
|
||||
for (int k = 0; k < 64; k++) {
|
||||
local_e0[k] = false;
|
||||
@@ -2165,7 +2166,7 @@ bool dMenu_Fmap_c::readAreaData(u8 i_regionNo, bool i_isSelectedRegion) {
|
||||
mpDraw2DBack->setStageOriginXZ(mSpotNum, stages[stage_index].mOffsetX,
|
||||
stages[stage_index].mOffsetZ);
|
||||
mAreaName[mSpotNum] = stages[stage_index].mAreaName;
|
||||
strcpy(mStageName[mSpotNum], stage_name);
|
||||
SAFE_STRCPY(mStageName[mSpotNum], stage_name);
|
||||
mSpotNum++;
|
||||
}
|
||||
|
||||
@@ -2213,7 +2214,7 @@ bool dMenu_Fmap_c::readRoomData(char const* i_stageName, dMenu_Fmap_stage_data_c
|
||||
dMenu_Fmap_stage_arc_data_c* room_data = NULL;
|
||||
|
||||
char stage_path[20];
|
||||
sprintf(stage_path, "%s/stage.dat", i_stageName);
|
||||
SAFE_SPRINTF(stage_path, "%s/stage.dat", i_stageName);
|
||||
if (readFieldMapData((void**)&room_data, stage_path, false, false)) {
|
||||
((dMenuMapCommon_c::RoomData_c*)o_roomData)->setRoomData(room_data);
|
||||
}
|
||||
@@ -2227,7 +2228,7 @@ bool dMenu_Fmap_c::readRoomData(char const* i_stageName, dMenu_Fmap_stage_data_c
|
||||
void* dzs_data = NULL;
|
||||
|
||||
char room_path[20];
|
||||
sprintf(room_path, "%s/room%d.dzs", i_stageName, room_nos[i]);
|
||||
SAFE_SPRINTF(room_path, "%s/room%d.dzs", i_stageName, room_nos[i]);
|
||||
|
||||
if (readRoomDzsData(&dzs_data, 0x1500, room_path)) {
|
||||
dMenu_Fmap_data_c* map_data = JKR_NEW dMenu_Fmap_data_c();
|
||||
@@ -2318,9 +2319,9 @@ void dMenu_Fmap_c::decodeFieldMapData() {
|
||||
bool local_3f = false;
|
||||
if (j == 7) {
|
||||
local_3f = true;
|
||||
sprintf(tex_path, "tex/region8.bti");
|
||||
SAFE_SPRINTF(tex_path, "tex/region8.bti");
|
||||
} else {
|
||||
sprintf(tex_path, "tex/region%d.bti", regions[i].mTextureReadNum);
|
||||
SAFE_SPRINTF(tex_path, "tex/region%d.bti", regions[i].mTextureReadNum);
|
||||
}
|
||||
|
||||
if (readFieldMapData((void**)&mRegionTexture[j], tex_path, true, local_3f)) {
|
||||
@@ -2438,7 +2439,7 @@ bool dMenu_Fmap_c::removeAreaData() {
|
||||
}
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
strcpy(mStageName[i], "");
|
||||
SAFE_STRCPY(mStageName[i], "");
|
||||
}
|
||||
|
||||
field_0x305 = false;
|
||||
@@ -2549,11 +2550,11 @@ void dMenu_Fmap_c::drawIcon(f32 param_0, bool param_1) {
|
||||
fopAc_ac_c* player = daPy_getPlayerActorClass();
|
||||
pos.set(dMapInfo_n::getMapPlayerPos());
|
||||
angle = player->shape_angle.y;
|
||||
strcpy(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
SAFE_STRCPY(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
} else {
|
||||
pos = dComIfGs_getPlayerFieldLastStayPos();
|
||||
angle = dComIfGs_getPlayerFieldLastStayAngleY();
|
||||
strcpy(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
SAFE_STRCPY(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
}
|
||||
|
||||
u8 is_portal_demo1 = 0;
|
||||
@@ -2642,11 +2643,11 @@ void dMenu_Fmap_c::drawPlayEnterIcon() {
|
||||
if (dComIfGs_isPlayerFieldLastStayFieldDataExistFlag()) {
|
||||
pos.set(dMapInfo_n::getMapRestartPos());
|
||||
angle = dComIfGs_getRestartRoomAngleY();
|
||||
strcpy(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
SAFE_STRCPY(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
} else {
|
||||
pos = dComIfGs_getPlayerFieldLastStayPos();
|
||||
angle = dComIfGs_getPlayerFieldLastStayAngleY();
|
||||
strcpy(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
SAFE_STRCPY(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
}
|
||||
mpDraw2DBack->setIcon2DPos(0x15, stage_name, pos.x, pos.z, cM_sht2d(angle), 0, false);
|
||||
}
|
||||
@@ -2788,10 +2789,10 @@ void dMenu_Fmap_c::arrowPosInit() {
|
||||
char stage_name[8];
|
||||
if (dComIfGs_isPlayerFieldLastStayFieldDataExistFlag()) {
|
||||
pos.set(dMapInfo_n::getMapPlayerPos());
|
||||
strcpy(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
SAFE_STRCPY(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
} else {
|
||||
pos = dComIfGs_getPlayerFieldLastStayPos();
|
||||
strcpy(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
SAFE_STRCPY(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
}
|
||||
|
||||
f32 fVar1 = 0.0f;
|
||||
@@ -2844,7 +2845,7 @@ void dMenu_Fmap_c::tableArrowPosInit(bool param_0) {
|
||||
}
|
||||
|
||||
static char* stage_name[4] = {"F_SP115", "F_SP113", "F_SP109", "F_SP108"};
|
||||
strcpy(mMarkedStageName, stage_name[iVar5]);
|
||||
SAFE_STRCPY(mMarkedStageName, stage_name[iVar5]);
|
||||
|
||||
if (param_0) {
|
||||
f32 pos1_x, pos2_x, pos1_z, pos2_z, icon_x, icon_z;
|
||||
@@ -2873,7 +2874,7 @@ void dMenu_Fmap_c::yamibossArrowPosInit() {
|
||||
void dMenu_Fmap_c::howlArrowPosInit() {
|
||||
u8 type = dMeter2Info_getGoldWolfMapType();
|
||||
static char* stage_name[6] = {"F_SP104", "F_SP122", "F_SP122", "F_SP124", "F_SP111", "F_SP116"};
|
||||
strcpy(mMarkedStageName, stage_name[type - 2]);
|
||||
SAFE_STRCPY(mMarkedStageName, stage_name[type - 2]);
|
||||
static const int i_swBit[6] = {0x41, 0x29, 0x2a, 0x32, 0x79, 0x32};
|
||||
f32 icon_x, icon_z;
|
||||
if (searchIcon(6, i_swBit[type - 2], &icon_x, &icon_z)) {
|
||||
@@ -2910,10 +2911,10 @@ cXyz* dMenu_Fmap_c::getPlayerPos2D() {
|
||||
char stage_name[8];
|
||||
if (dComIfGs_isPlayerFieldLastStayFieldDataExistFlag()) {
|
||||
pos.set(dMapInfo_n::getMapPlayerPos());
|
||||
strcpy(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
SAFE_STRCPY(stage_name, dMenuFmap_getStartStageName(mpFieldDat));
|
||||
} else {
|
||||
pos = dComIfGs_getPlayerFieldLastStayPos();
|
||||
strcpy(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
SAFE_STRCPY(stage_name, dComIfGs_getPlayerFieldLastStayName());
|
||||
}
|
||||
mpDraw2DBack->calcAllMapPos2D(stage_name, pos.x - mpDraw2DBack->getStageTransX(),
|
||||
pos.z - mpDraw2DBack->getStageTransZ(),
|
||||
|
||||
@@ -2730,7 +2730,7 @@ void dMenu_Fmap2DTop_c::setTitleNameString(u32 param_0) {
|
||||
#endif
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (param_0 == 0) {
|
||||
strcpy(((J2DTextBox*)(mpTitleScreen->search(setTitleNameString_font_name[i])))
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTitleScreen->search(setTitleNameString_font_name[i])))
|
||||
->getStringPtr(),
|
||||
"");
|
||||
} else {
|
||||
@@ -2753,7 +2753,7 @@ void dMenu_Fmap2DTop_c::setAreaNameString(u32 param_0) {
|
||||
#endif
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (param_0 == 0) {
|
||||
strcpy(((J2DTextBox*)(mpTitleScreen->search(setAreaNameString_area_name[i])))
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTitleScreen->search(setAreaNameString_area_name[i])))
|
||||
->getStringPtr(),
|
||||
"");
|
||||
} else {
|
||||
@@ -2866,7 +2866,7 @@ void dMenu_Fmap2DTop_c::setCrossLRString(u32 param_0) {
|
||||
if (param_0 == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
J2DTextBox* text_box = static_cast<J2DTextBox*>(mpTitleScreen->search(juji_c[i]));
|
||||
strcpy(text_box->getStringPtr(), "");
|
||||
SAFE_STRCPY(text_box->getStringPtr(), "");
|
||||
}
|
||||
mpTitleScreen->search(MULTI_CHAR('juy_sha0'))->show();
|
||||
mAlphaDpad = 1;
|
||||
@@ -2891,7 +2891,7 @@ void dMenu_Fmap2DTop_c::set3DStickString(u32 param_0) {
|
||||
if (param_0 == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
J2DTextBox* text_box = static_cast<J2DTextBox*>(mpTitleScreen->search(ast_c[i]));
|
||||
strcpy(text_box->getStringPtr(), "");
|
||||
SAFE_STRCPY(text_box->getStringPtr(), "");
|
||||
}
|
||||
mpTitleScreen->search(MULTI_CHAR('as_sha0'))->show();
|
||||
mAlphaAnalogStick = 1;
|
||||
|
||||
@@ -352,12 +352,12 @@ void dMenu_Insect_c::explain_open_init() {
|
||||
"\x1B"
|
||||
"CR[%d]",
|
||||
(int)(0.5f * (length - stringLength1)));
|
||||
strcat(local_b8, local_78);
|
||||
SAFE_STRCAT(local_b8, local_78);
|
||||
snprintf(cStack_d8, 32,
|
||||
"\x1B"
|
||||
"CR[%d]",
|
||||
(int)(0.5f * (length - stringLength2)));
|
||||
strcat(cStack_d8, local_98);
|
||||
SAFE_STRCAT(cStack_d8, local_98);
|
||||
mpSelect_c->setString("", local_b8, cStack_d8);
|
||||
mpSelect_c->setRubyString("", "", "");
|
||||
mpSelect_c->selAnimeInit(2, field_0xf7 + 1, 0, length, 0);
|
||||
@@ -730,7 +730,7 @@ u8 dMenu_Insect_c::dpdMove() {
|
||||
void dMenu_Insect_c::setAButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpAButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpAButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -742,7 +742,7 @@ void dMenu_Insect_c::setAButtonString(u16 i_stringID) {
|
||||
void dMenu_Insect_c::setBButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpBButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpBButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
|
||||
@@ -508,12 +508,12 @@ void dMenu_ItemExplain_c::move_select_init() {
|
||||
"\x1B"
|
||||
"CR[%d]",
|
||||
(int)(0.5f * (length - stringLength1)));
|
||||
strcat(local_64, local_88);
|
||||
SAFE_STRCAT(local_64, local_88);
|
||||
snprintf(cStack78, 20,
|
||||
"\x1B"
|
||||
"CR[%d]",
|
||||
(int)(0.5f * (length - stringLength2)));
|
||||
strcat(cStack78, local_80);
|
||||
SAFE_STRCAT(cStack78, local_80);
|
||||
mpSelect_c->setString("", local_64, cStack78);
|
||||
mpSelect_c->setRubyString("", "", "");
|
||||
mpSelect_c->selAnimeInit(2, field_0xe2 + 1, 0, length, 0);
|
||||
|
||||
@@ -501,10 +501,10 @@ void dMenu_Letter_c::read_open_init() {
|
||||
field_0x3e2 = mpString->getPageMax(D_MENU_LETTER_LINE_MAX);
|
||||
if (field_0x3e2 > 1) {
|
||||
char acStack_30[20];
|
||||
sprintf(acStack_30, "%d/%d", field_0x3e3, field_0x3e2);
|
||||
SAFE_SPRINTF(acStack_30, "%d/%d", field_0x3e3, field_0x3e2);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1e4[i]->show();
|
||||
strcpy(field_0x1e4[i]->getStringPtr(), acStack_30);
|
||||
SAFE_STRCPY(field_0x1e4[i]->getStringPtr(), acStack_30);
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
@@ -654,10 +654,10 @@ void dMenu_Letter_c::read_next_fadein_init() {
|
||||
D_MENU_LETTER_LINE_MAX, text2, text1, NULL, NULL, 0);
|
||||
}
|
||||
char acStack_30[10];
|
||||
sprintf(acStack_30, "%d/%d", field_0x3e3, field_0x3e2);
|
||||
SAFE_SPRINTF(acStack_30, "%d/%d", field_0x3e3, field_0x3e2);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1e4[i]->show();
|
||||
strcpy(field_0x1e4[i]->getStringPtr(), acStack_30);
|
||||
SAFE_STRCPY(field_0x1e4[i]->getStringPtr(), acStack_30);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1273,7 +1273,7 @@ void dMenu_Letter_c::copyDMYMenu() {
|
||||
void dMenu_Letter_c::setAButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpAButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpAButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -1286,7 +1286,7 @@ void dMenu_Letter_c::setAButtonString(u16 i_stringID) {
|
||||
void dMenu_Letter_c::setBButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpBButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpBButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
|
||||
@@ -750,7 +750,7 @@ void dMenuMapCommon_c::debugIcon() {
|
||||
|
||||
#if TARGET_PC
|
||||
static constexpr struct {
|
||||
std::string stagename;
|
||||
std::string_view stagename;
|
||||
u8 switch_no;
|
||||
s8 region_id;
|
||||
u8 save_id;
|
||||
|
||||
@@ -2107,7 +2107,7 @@ void dMenu_Option_c::setAButtonString(u16 i_stringID) {
|
||||
if (stringId == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
J2DTextBox* textBox = (J2DTextBox*)mpScreenIcon->search(text_a_tag[i]);
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -2127,7 +2127,7 @@ void dMenu_Option_c::setBButtonString(u16 i_stringID) {
|
||||
if (stringId == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
J2DTextBox* textBox = (J2DTextBox*)mpScreenIcon->search(text_b_tag[i]);
|
||||
strcpy(textBox->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
|
||||
@@ -1213,7 +1213,7 @@ void dMenu_Ring_c::setNameString(u32 i_stringID) {
|
||||
if (mNameStringID != i_stringID) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i_stringID == 0) {
|
||||
strcpy(textBox[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(textBox[i]->getStringPtr(), "");
|
||||
} else {
|
||||
mpString->getString(i_stringID, textBox[i], NULL, NULL, NULL, 0);
|
||||
}
|
||||
|
||||
@@ -816,8 +816,8 @@ void dMenu_save_c::saveQuestion() {
|
||||
field_0x9c = 0;
|
||||
field_0x17a = 0;
|
||||
|
||||
strcpy(mpHeaderTxt[mHeaderTxtType], "");
|
||||
strcpy(mpHeaderTxt[mHeaderTxtType ^ 1], "");
|
||||
SAFE_STRCPY(mpHeaderTxt[mHeaderTxtType], "");
|
||||
SAFE_STRCPY(mpHeaderTxt[mHeaderTxtType ^ 1], "");
|
||||
field_0x64 = 0;
|
||||
field_0x50 = 1;
|
||||
field_0x40->setFrame(field_0x50);
|
||||
@@ -2033,7 +2033,7 @@ void dMenu_save_c::saveYesNoCancelMove() {
|
||||
|
||||
void dMenu_save_c::headerTxtSet(u16 msgID) {
|
||||
if (msgID == 0xFFFF) {
|
||||
strcpy(mpHeaderTxt[mHeaderTxtType ^ 1], "");
|
||||
SAFE_STRCPY(mpHeaderTxt[mHeaderTxtType ^ 1], "");
|
||||
} else {
|
||||
mSaveSel.mMsgString->getString(
|
||||
msgID, (J2DTextBox*)mpHeaderTxtPane[mHeaderTxtType ^ 1]->getPanePtr(), NULL,
|
||||
@@ -2230,7 +2230,7 @@ void dMenu_save_c::errYesNoCursorMoveAnm() {
|
||||
|
||||
void dMenu_save_c::errorTxtSet(u16 msgID) {
|
||||
if (msgID == 0xFFFF) {
|
||||
strcpy(mpErrTxt[mErrTxtType ^ 1], "");
|
||||
SAFE_STRCPY(mpErrTxt[mErrTxtType ^ 1], "");
|
||||
} else {
|
||||
J2DTextBox* tbox = (J2DTextBox*)mpErrTxtPane[mErrTxtType ^ 1]->getPanePtr();
|
||||
mSaveSel.mMsgString->getString(msgID, tbox, NULL, mSaveSel.font[0], NULL, 0);
|
||||
|
||||
@@ -610,7 +610,7 @@ void dMenu_Skill_c::setPageText() {
|
||||
void dMenu_Skill_c::setAButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpAButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpAButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -622,7 +622,7 @@ void dMenu_Skill_c::setAButtonString(u16 i_stringID) {
|
||||
void dMenu_Skill_c::setBButtonString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpBButtonString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpBButtonString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -634,7 +634,7 @@ void dMenu_Skill_c::setBButtonString(u16 i_stringID) {
|
||||
void dMenu_Skill_c::setNameString(u16 i_stringID) {
|
||||
if (i_stringID == 0) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
strcpy(mpNameString[i]->getStringPtr(), "");
|
||||
SAFE_STRCPY(mpNameString[i]->getStringPtr(), "");
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
|
||||
@@ -2245,11 +2245,11 @@ void dMeter2Draw_c::drawButtonA(u8 i_action, f32 i_posX, f32 i_posY, f32 i_textP
|
||||
mp_string = getActionString(0x15, 1, NULL);
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(static_cast<J2DTextBox*>(mpAText[i]->getPanePtr())->getStringPtr(), mp_string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpAText[i]->getPanePtr())->getStringPtr(), mp_string);
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(static_cast<J2DTextBox*>(mpAText[i]->getPanePtr())->getStringPtr(), mp_string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpAText[i]->getPanePtr())->getStringPtr(), mp_string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2308,7 +2308,7 @@ void dMeter2Draw_c::drawButtonB(u8 i_action, bool param_1, f32 i_posX, f32 i_pos
|
||||
JUT_ASSERT(0, strlen(mp_string) < (64));
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(static_cast<J2DTextBox*>(mpBText[i]->getPanePtr())->getStringPtr(), mp_string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpBText[i]->getPanePtr())->getStringPtr(), mp_string);
|
||||
}
|
||||
|
||||
if (i_action == 0x26 || i_action == 0x2E) {
|
||||
@@ -2391,7 +2391,7 @@ void dMeter2Draw_c::drawButtonZ(u8 i_action) {
|
||||
JUT_ASSERT(0, strlen(mp_string) < (64));
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(static_cast<J2DTextBox*>(mpXYText[i][2]->getPanePtr())->getStringPtr(), mp_string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpXYText[i][2]->getPanePtr())->getStringPtr(), mp_string);
|
||||
}
|
||||
|
||||
mpButtonXY[2]->scale(g_drawHIO.mButtonZScale, g_drawHIO.mButtonZScale);
|
||||
@@ -2490,7 +2490,7 @@ void dMeter2Draw_c::drawButtonXY(int i_no, u8 i_itemNo, u8 i_action, bool param_
|
||||
JUT_ASSERT(0, strlen(mp_string) < (64));
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(static_cast<J2DTextBox*>(mpXYText[i][i_no]->getPanePtr())->getStringPtr(),
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpXYText[i][i_no]->getPanePtr())->getStringPtr(),
|
||||
mp_string);
|
||||
}
|
||||
|
||||
@@ -3243,7 +3243,7 @@ char* dMeter2Draw_c::getActionString(u8 i_action, u8 i_type, u8* param_2) {
|
||||
};
|
||||
|
||||
static char i_text_buf[32];
|
||||
strcpy(i_text_buf, "");
|
||||
SAFE_STRCPY(i_text_buf, "");
|
||||
|
||||
if (param_2 != NULL) {
|
||||
*param_2 = 1;
|
||||
|
||||
+11
-9
@@ -15,6 +15,8 @@
|
||||
|
||||
#include <cstring>
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
enum ITEMICON_RES_FILE_ID {
|
||||
ITEMICON_BTI_ARI_MESU_00=0x3,
|
||||
ITEMICON_BTI_ARI_OSU_00=0x4,
|
||||
@@ -350,8 +352,8 @@ void dMeter2Info_c::decMsgKeyWaitTimer() {
|
||||
}
|
||||
}
|
||||
|
||||
void dMeter2Info_c::getString(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
strcpy(o_string, "");
|
||||
void dMeter2Info_c::getString(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
SAFE_STRCPY(o_string, "");
|
||||
|
||||
u8* msgRes;
|
||||
if (mMsgResource == NULL) {
|
||||
@@ -372,7 +374,7 @@ void dMeter2Info_c::getString(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_
|
||||
// check if i_stringID equals the message entry "Message ID"
|
||||
if (i_stringID == bmg_inf->entries[i].message_id) {
|
||||
string_ptr = (char*)(string_data + bmg_inf->entries[i].string_offset); // use entry "String Offset" to get string pointer
|
||||
strcpy(o_string, string_ptr);
|
||||
SAFE_STRCPY(o_string, string_ptr);
|
||||
|
||||
if (i_msgEntry != NULL) {
|
||||
memcpy(i_msgEntry, &bmg_inf->entries[i], sizeof(JMSMesgEntry_c));
|
||||
@@ -387,8 +389,8 @@ void dMeter2Info_c::getString(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_
|
||||
}
|
||||
}
|
||||
|
||||
void dMeter2Info_c::getStringKana(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
strcpy(o_string, "");
|
||||
void dMeter2Info_c::getStringKana(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
SAFE_STRCPY(o_string, "");
|
||||
|
||||
u8* msgRes;
|
||||
if (mMsgResource == NULL) {
|
||||
@@ -456,8 +458,8 @@ void dMeter2Info_c::getStringKana(u32 i_stringID, char* o_string, JMSMesgEntry_c
|
||||
}
|
||||
}
|
||||
|
||||
void dMeter2Info_c::getStringKanji(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
strcpy(o_string, "");
|
||||
void dMeter2Info_c::getStringKanji(u32 i_stringID, TEXT_SPAN o_string, JMSMesgEntry_c* i_msgEntry) {
|
||||
SAFE_STRCPY(o_string, "");
|
||||
|
||||
u8* msgRes;
|
||||
if (mMsgResource == NULL) {
|
||||
@@ -668,7 +670,7 @@ void dMeter2Info_c::resetMeterString() {
|
||||
|
||||
void dMeter2Info_c::setWarpInfo(const char* i_stageName, const cXyz& i_position, s16 i_angle,
|
||||
u8 i_roomNo, u8 param_4, u8 i_warpPlayerNo) {
|
||||
strcpy(mWarpInfo.mStageName, i_stageName);
|
||||
SAFE_STRCPY(mWarpInfo.mStageName, i_stageName);
|
||||
mWarpInfo.mPosition = i_position;
|
||||
mWarpInfo.mAngle = (s16)i_angle;
|
||||
mWarpInfo.mRoomNo = (u8)i_roomNo;
|
||||
@@ -1592,7 +1594,7 @@ void dMeter2Info_c::setMiniGameCount(s8 i_count) {
|
||||
}
|
||||
|
||||
void dMeter2Info_c::setSaveStageName(const char* i_stageName) {
|
||||
strcpy(mSaveStageName, i_stageName);
|
||||
SAFE_STRCPY(mSaveStageName, i_stageName);
|
||||
}
|
||||
|
||||
s16 dMeter2Info_getNowLifeGauge() {
|
||||
|
||||
+14
-12
@@ -22,6 +22,8 @@
|
||||
#include "dusk/string.hpp"
|
||||
#endif
|
||||
|
||||
#include "dusk/string.hpp"
|
||||
|
||||
#if VERSION == VERSION_GCN_JPN
|
||||
#define STR_BUF_LEN 528
|
||||
#else
|
||||
@@ -257,7 +259,7 @@ void dMeterButton_c::draw() {
|
||||
|
||||
if (mMsgID != 0xFFFF) {
|
||||
char tmp_buf[STR_BUF_LEN];
|
||||
strcpy(tmp_buf, static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr())->getStringPtr());
|
||||
SAFE_STRCPY(tmp_buf, static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr())->getStringPtr());
|
||||
mpTextScreen->draw(0.0f, 0.0f, graf_ctx);
|
||||
|
||||
#if VERSION == VERSION_GCN_JPN
|
||||
@@ -268,7 +270,7 @@ void dMeterButton_c::draw() {
|
||||
NULL, 8);
|
||||
#endif
|
||||
mpString_c->drawOutFont(static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr()), -1.0f);
|
||||
strcpy(static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr())->getStringPtr(), tmp_buf);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr())->getStringPtr(), tmp_buf);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
@@ -1210,7 +1212,7 @@ void dMeterButton_c::screenInitButton() {
|
||||
field_0x360 = mpTextBox[0]->getBounds().i.x;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
strcpy(mButtonText[i], "");
|
||||
SAFE_STRCPY(mButtonText[i], "");
|
||||
field_0x2e8[i] = 0.0f;
|
||||
field_0x4be[i] = BUTTON_NONE_e;
|
||||
field_0x2f4[i] = 0.0f;
|
||||
@@ -1906,12 +1908,12 @@ void dMeterButton_c::updateText(u32 i_flags) {
|
||||
if (getString)
|
||||
{
|
||||
mMsgID = dMeter2Info_getFloatingMessageID();
|
||||
strcpy(static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr())->getStringPtr(), buf1);
|
||||
strcpy(static_cast<J2DTextBox*>(mpTm_c[1]->getPanePtr())->getStringPtr(), buf3);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpTm_c[0]->getPanePtr())->getStringPtr(), buf1);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpTm_c[1]->getPanePtr())->getStringPtr(), buf3);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (field_0x0ec[i] != NULL) {
|
||||
strcpy(
|
||||
SAFE_STRCPY(
|
||||
static_cast<J2DTextBox*>(field_0x0ec[i]->getPanePtr())->getStringPtr(),
|
||||
buf2);
|
||||
}
|
||||
@@ -3023,7 +3025,7 @@ void dMeterButton_c::setString(char* i_string, u8 i_button, u8 param_2, u8 param
|
||||
}
|
||||
}
|
||||
|
||||
strcpy(mButtonText[param_2], i_string);
|
||||
SAFE_STRCPY(mButtonText[param_2], i_string);
|
||||
|
||||
if (param_2 == 0) {
|
||||
if (param_3 != 0) {
|
||||
@@ -3033,7 +3035,7 @@ void dMeterButton_c::setString(char* i_string, u8 i_button, u8 param_2, u8 param
|
||||
}
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpTextBox[i]->getStringPtr(), i_string);
|
||||
SAFE_STRCPY(mpTextBox[i]->getStringPtr(), i_string);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -3045,7 +3047,7 @@ void dMeterButton_c::setString(char* i_string, u8 i_button, u8 param_2, u8 param
|
||||
}
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
strcpy(mpTextBox[5 + i]->getStringPtr(), i_string);
|
||||
SAFE_STRCPY(mpTextBox[5 + i]->getStringPtr(), i_string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3300,7 +3302,7 @@ void dMeterButton_c::hide_button(u8 i_button) {
|
||||
field_0x4b8[1] = 0;
|
||||
field_0x4bc[1] = 0;
|
||||
|
||||
strcpy(mButtonText[1], "");
|
||||
SAFE_STRCPY(mButtonText[1], "");
|
||||
mpText[0]->alphaAnimeStart(mpText[1]->getAlphaTimer());
|
||||
mpText[0]->setAlphaRate(mpText[1]->getAlphaRate());
|
||||
mpText[1]->alphaAnimeStart(0);
|
||||
@@ -3310,14 +3312,14 @@ void dMeterButton_c::hide_button(u8 i_button) {
|
||||
field_0x4be[0] = BUTTON_NONE_e;
|
||||
field_0x4b8[0] = 0;
|
||||
field_0x4bc[0] = 0;
|
||||
strcpy(mButtonText[0], "");
|
||||
SAFE_STRCPY(mButtonText[0], "");
|
||||
}
|
||||
} else if (field_0x4be[1] == i_button) {
|
||||
field_0x4be[1] = BUTTON_NONE_e;
|
||||
field_0x4b8[1] = 0;
|
||||
field_0x4bc[1] = 0;
|
||||
field_0x2f4[0] = 0.0f;
|
||||
strcpy(mButtonText[1], "");
|
||||
SAFE_STRCPY(mButtonText[1], "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -186,8 +186,8 @@ int dMeterString_c::_delete() {
|
||||
int dMeterString_c::createString(int i_stringID) {
|
||||
char str_buf[32];
|
||||
dMeter2Info_getString(i_stringID, str_buf, NULL);
|
||||
strcpy(static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('get_in_s')))->getStringPtr(), str_buf);
|
||||
strcpy(static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('get_in')))->getStringPtr(), str_buf);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('get_in_s')))->getStringPtr(), str_buf);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpScreen->search(MULTI_CHAR('get_in')))->getStringPtr(), str_buf);
|
||||
|
||||
mAnimFrame = 40.0f;
|
||||
mPikariAnimFrame = -1.0f;
|
||||
|
||||
+64
-64
@@ -320,33 +320,33 @@ static u8 getOutFontNumberType(int param_0) {
|
||||
}
|
||||
|
||||
#if TARGET_PC || VERSION == VERSION_GCN_PAL
|
||||
static void setPlayerName(char* i_player_name, u8 param_2) {
|
||||
static void setPlayerName(TEXT_SPAN i_player_name, u8 param_2) {
|
||||
if (param_2 != 0) {
|
||||
strcpy(i_player_name, dComIfGs_getPlayerName());
|
||||
SAFE_STRCPY(i_player_name, dComIfGs_getPlayerName());
|
||||
u32 name_length = strlen(i_player_name);
|
||||
char last = i_player_name[name_length - 1];
|
||||
if (last == 0x73 || last == 0x53 || last == 0x7a || last == 0x5a || last == 0x78 || last == 0x58 || last == 0xdf) {
|
||||
strcat(i_player_name, "'");
|
||||
SAFE_STRCAT(i_player_name, "'");
|
||||
} else {
|
||||
strcat(i_player_name, "s");
|
||||
SAFE_STRCAT(i_player_name, "s");
|
||||
}
|
||||
} else {
|
||||
strcpy(i_player_name, dComIfGs_getPlayerName());
|
||||
SAFE_STRCPY(i_player_name, dComIfGs_getPlayerName());
|
||||
}
|
||||
}
|
||||
|
||||
static void setHorseName(char* i_horse_name, u8 param_2) {
|
||||
static void setHorseName(TEXT_SPAN i_horse_name, u8 param_2) {
|
||||
if (param_2 != 0) {
|
||||
strcpy(i_horse_name, dComIfGs_getHorseName());
|
||||
SAFE_STRCPY(i_horse_name, dComIfGs_getHorseName());
|
||||
u32 name_length = strlen(i_horse_name);
|
||||
char last = i_horse_name[name_length - 1];
|
||||
if (last == 0x73 || last == 0x53 || last == 0x7a || last == 0x5a || last == 0x78 || last == 0x58 || last == 0xdf) {
|
||||
strcat(i_horse_name, "'");
|
||||
SAFE_STRCAT(i_horse_name, "'");
|
||||
} else {
|
||||
strcat(i_horse_name, "s");
|
||||
SAFE_STRCAT(i_horse_name, "s");
|
||||
}
|
||||
} else {
|
||||
strcpy(i_horse_name, dComIfGs_getHorseName());
|
||||
SAFE_STRCPY(i_horse_name, dComIfGs_getHorseName());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -719,7 +719,7 @@ void jmessage_tReference::inputNumber() {
|
||||
getObjectPtr()->setInputValue(new_input_val);
|
||||
}
|
||||
|
||||
char* jmessage_tReference::getWord(int i_no) {
|
||||
TEXT_SPAN jmessage_tReference::getWord(int i_no) {
|
||||
if (i_no >= 10) {
|
||||
JUT_WARN(1093, "%s", "message stack over!!");
|
||||
JUT_ASSERT(1094, i_no < (10));
|
||||
@@ -1105,14 +1105,14 @@ bool jmessage_tMeasureProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_siz
|
||||
case MSGTAG_CURRENT_LETTER_PAGE: {
|
||||
char buffer[4];
|
||||
int number = dComIfGp_getMessageCountNumber() / 100;
|
||||
sprintf(buffer, "%d", number);
|
||||
SAFE_SPRINTF(buffer, "%d", number);
|
||||
push_word(buffer);
|
||||
return true;
|
||||
}
|
||||
case MSGTAG_MAX_LETTER_PAGE: {
|
||||
char buffer[4];
|
||||
int number = dComIfGp_getMessageCountNumber() % 100;
|
||||
sprintf(buffer, "%d", number);
|
||||
SAFE_SPRINTF(buffer, "%d", number);
|
||||
push_word(buffer);
|
||||
return true;
|
||||
}
|
||||
@@ -1132,7 +1132,7 @@ bool jmessage_tMeasureProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_siz
|
||||
}
|
||||
|
||||
char player_name[100];
|
||||
strcpy(player_name, dComIfGs_getPlayerName());
|
||||
SAFE_STRCPY(player_name, dComIfGs_getPlayerName());
|
||||
push_word(player_name);
|
||||
return true;
|
||||
}
|
||||
@@ -1142,7 +1142,7 @@ bool jmessage_tMeasureProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_siz
|
||||
}
|
||||
|
||||
char horse_name[100];
|
||||
strcpy(horse_name, dComIfGs_getHorseName());
|
||||
SAFE_STRCPY(horse_name, dComIfGs_getHorseName());
|
||||
push_word(horse_name);
|
||||
return true;
|
||||
}
|
||||
@@ -1791,7 +1791,7 @@ void jmessage_tMeasureProcessor::do_rubyset(void const* i_data, u32 i_size) {
|
||||
|
||||
void jmessage_tMeasureProcessor::push_word(char* i_word) {
|
||||
jmessage_tReference* pReference = (jmessage_tReference*)getReference();
|
||||
strcpy(pReference->getWord(field_0x4b), i_word);
|
||||
SAFE_STRCPY(pReference->getWord(field_0x4b), i_word);
|
||||
stack_pushCurrent(pReference->getWord(field_0x4b));
|
||||
field_0x4b++;
|
||||
}
|
||||
@@ -2415,7 +2415,7 @@ bool jmessage_tSequenceProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_si
|
||||
|
||||
u8 sel_bomb_num = objectPtr->getSelectBombNum();
|
||||
dMsgUnit_setTag(7, sel_bomb_num, buffer);
|
||||
strcpy((char*)pReference->getWord(field_0xb5), buffer);
|
||||
SAFE_STRCPY((TEXT_SPAN)pReference->getWord(field_0xb5), buffer);
|
||||
push_word();
|
||||
return true;
|
||||
}
|
||||
@@ -2425,7 +2425,7 @@ bool jmessage_tSequenceProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_si
|
||||
|
||||
s16 sel_bomb_price = objectPtr->getSelectBombPrice();
|
||||
dMsgUnit_setTag(1, sel_bomb_price, buffer);
|
||||
strcpy((char*)pReference->getWord(field_0xb5), buffer);
|
||||
SAFE_STRCPY((TEXT_SPAN)pReference->getWord(field_0xb5), buffer);
|
||||
push_word();
|
||||
return true;
|
||||
}
|
||||
@@ -2772,13 +2772,13 @@ void jmessage_tRenderingProcessor::do_begin(void const* pEntry, char const* pszT
|
||||
}
|
||||
|
||||
field_0x11c = 0;
|
||||
strcpy(pReference->getTextPtr(), "");
|
||||
strcpy(pReference->getTextSPtr(), "");
|
||||
strcpy(pReference->getRubyPtr(), "");
|
||||
SAFE_STRCPY(pReference->getTextPtr(), "");
|
||||
SAFE_STRCPY(pReference->getTextSPtr(), "");
|
||||
SAFE_STRCPY(pReference->getRubyPtr(), "");
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
strcpy(pReference->getSelTextPtr(i), "");
|
||||
strcpy(pReference->getSelRubyPtr(i), "");
|
||||
SAFE_STRCPY(pReference->getSelTextPtr(i), "");
|
||||
SAFE_STRCPY(pReference->getSelRubyPtr(i), "");
|
||||
}
|
||||
|
||||
if (1.0f != pReference->getDistanceScale()) {
|
||||
@@ -2803,12 +2803,12 @@ void jmessage_tRenderingProcessor::do_end() {
|
||||
if (dMsgObject_getSelectWordFlag() != 0) {
|
||||
for (int i = 0; i < dMsgObject_getSelectWordFlag(); i++) {
|
||||
char buffer[200];
|
||||
strcpy(buffer, dMsgObject_getSelectWord(i));
|
||||
SAFE_STRCPY(buffer, dMsgObject_getSelectWord(i));
|
||||
|
||||
if (pReference->getSelectNum() == 2) {
|
||||
strcat(pReference->getSelTextPtr(i + 1), buffer);
|
||||
SAFE_STRCAT(pReference->getSelTextPtr(i + 1), buffer);
|
||||
} else if (pReference->getSelectNum() == 3) {
|
||||
strcat(pReference->getSelTextPtr(i), buffer);
|
||||
SAFE_STRCAT(pReference->getSelTextPtr(i), buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3120,7 +3120,7 @@ bool jmessage_tRenderingProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_s
|
||||
char buffer[40];
|
||||
u8 bombNum = pReference->getObjectPtr()->getSelectBombNum();
|
||||
dMsgUnit_setTag(7, bombNum, buffer);
|
||||
strcpy(pReference->getWord(field_0x14f), buffer);
|
||||
SAFE_STRCPY(pReference->getWord(field_0x14f), buffer);
|
||||
push_word();
|
||||
return 1;
|
||||
}
|
||||
@@ -3128,7 +3128,7 @@ bool jmessage_tRenderingProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_s
|
||||
char buffer[40];
|
||||
s16 bombPrice = pReference->getObjectPtr()->getSelectBombPrice();
|
||||
dMsgUnit_setTag(1, bombPrice, buffer);
|
||||
strcpy(pReference->getWord(field_0x14f), buffer);
|
||||
SAFE_STRCPY(pReference->getWord(field_0x14f), buffer);
|
||||
push_word();
|
||||
return 1;
|
||||
}
|
||||
@@ -3513,7 +3513,7 @@ void jmessage_tRenderingProcessor::do_color(u8 i_colorNo) {
|
||||
mGCColor = getFontGCColorTable(i_colorNo, reference_p->getFukiKind());
|
||||
|
||||
char buffer[40];
|
||||
sprintf(buffer,
|
||||
SAFE_SPRINTF(buffer,
|
||||
"\x1B"
|
||||
"CC[%08x]"
|
||||
"\x1B"
|
||||
@@ -3541,7 +3541,7 @@ void jmessage_tRenderingProcessor::do_scale(f32 param_1) {
|
||||
}
|
||||
|
||||
char buffer[32];
|
||||
sprintf(buffer,
|
||||
SAFE_SPRINTF(buffer,
|
||||
"\x1B"
|
||||
"FX[%d]"
|
||||
"\x1B"
|
||||
@@ -3553,7 +3553,7 @@ void jmessage_tRenderingProcessor::do_scale(f32 param_1) {
|
||||
void jmessage_tRenderingProcessor::do_linedown(s16 param_0) {
|
||||
char buffer[16];
|
||||
|
||||
sprintf(buffer, "\x1B" "CD[%d]", param_0);
|
||||
SAFE_SPRINTF(buffer, "\x1B" "CD[%d]", param_0);
|
||||
do_strcat(buffer, false, true, false);
|
||||
}
|
||||
|
||||
@@ -3563,11 +3563,11 @@ void jmessage_tRenderingProcessor::do_transY(s16 i_transY, bool unused) {
|
||||
char buffer1[16];
|
||||
|
||||
if (i_transY < 0) {
|
||||
sprintf(buffer0, "\x1B" "CU[%d]", -i_transY);
|
||||
sprintf(buffer1, "\x1B" "CD[%d]", -i_transY);
|
||||
SAFE_SPRINTF(buffer0, "\x1B" "CU[%d]", -i_transY);
|
||||
SAFE_SPRINTF(buffer1, "\x1B" "CD[%d]", -i_transY);
|
||||
} else {
|
||||
sprintf(buffer0, "\x1B" "CD[%d]", i_transY);
|
||||
sprintf(buffer1, "\x1B" "CU[%d]", i_transY);
|
||||
SAFE_SPRINTF(buffer0, "\x1B" "CD[%d]", i_transY);
|
||||
SAFE_SPRINTF(buffer1, "\x1B" "CU[%d]", i_transY);
|
||||
}
|
||||
|
||||
field_0x4c -= i_transY;
|
||||
@@ -3655,7 +3655,7 @@ void jmessage_tRenderingProcessor::do_strcat(char* i_str, bool param_2, bool par
|
||||
field_0x11c += strlen(i_str);
|
||||
if (field_0x14e != 0) {
|
||||
if (field_0x11c < 50) {
|
||||
strcat(pReference->getSelTextPtr(field_0x14e - 1), i_str);
|
||||
SAFE_STRCAT(pReference->getSelTextPtr(field_0x14e - 1), i_str);
|
||||
} else {
|
||||
JUT_WARN(5316, "%s", "TextBox Alloc Byte Over!!");
|
||||
}
|
||||
@@ -3674,22 +3674,22 @@ void jmessage_tRenderingProcessor::do_strcat(char* i_str, bool param_2, bool par
|
||||
if (pReference->getCharAlpha() < 255.0f) {
|
||||
pReference->addCharAlpha();
|
||||
if (field_0x148 != 0) {
|
||||
char* textPtr = pReference->getTextPtr();
|
||||
TEXT_SPAN textPtr = pReference->getTextPtr();
|
||||
textPtr[field_0x148] = 0;
|
||||
strcat(textPtr, field_0x184);
|
||||
SAFE_STRCAT(textPtr, field_0x184);
|
||||
}
|
||||
|
||||
if (field_0x14a != 0) {
|
||||
char* textPtr = pReference->getTextSPtr();
|
||||
TEXT_SPAN textPtr = pReference->getTextSPtr();
|
||||
textPtr[field_0x14a] = 0;
|
||||
strcat(textPtr, field_0x184);
|
||||
SAFE_STRCAT(textPtr, field_0x184);
|
||||
}
|
||||
|
||||
|
||||
u32 charColor = (mCCColor & 0xFFFFFF00) | ((int)pReference->getCharAlpha() & 0xFF);
|
||||
u32 gradColor = (mGCColor & 0xFFFFFF00) | ((int)pReference->getCharAlpha() & 0xFF);
|
||||
char buffer[36];
|
||||
sprintf(buffer, "\x1b" "CC[%08x]" "\x1b" "GC[%08x]", charColor, gradColor);
|
||||
SAFE_SPRINTF(buffer, "\x1b" "CC[%08x]" "\x1b" "GC[%08x]", charColor, gradColor);
|
||||
|
||||
int length = 0;
|
||||
length = strlen(buffer);
|
||||
@@ -3698,9 +3698,9 @@ void jmessage_tRenderingProcessor::do_strcat(char* i_str, bool param_2, bool par
|
||||
field_0x148 = strlen(pReference->getTextPtr());
|
||||
field_0x14a = strlen(pReference->getTextSPtr());
|
||||
|
||||
strcpy(field_0x184, i_str);
|
||||
strcat(pReference->getTextPtr(), buffer);
|
||||
strcat(pReference->getTextSPtr(), buffer);
|
||||
SAFE_STRCPY(field_0x184, i_str);
|
||||
SAFE_STRCAT(pReference->getTextPtr(), buffer);
|
||||
SAFE_STRCAT(pReference->getTextSPtr(), buffer);
|
||||
} else {
|
||||
JUT_WARN(5362, "%s", "TextBox Alloc Byte Over!!");
|
||||
}
|
||||
@@ -3711,9 +3711,9 @@ void jmessage_tRenderingProcessor::do_strcat(char* i_str, bool param_2, bool par
|
||||
field_0x14a = 0;
|
||||
}
|
||||
|
||||
strcat(pReference->getTextPtr(), i_str);
|
||||
SAFE_STRCAT(pReference->getTextPtr(), i_str);
|
||||
if (param_3) {
|
||||
strcat(pReference->getTextSPtr(), i_str);
|
||||
SAFE_STRCAT(pReference->getTextSPtr(), i_str);
|
||||
}
|
||||
} else {
|
||||
JUT_WARN(5380, "%s", "TextBox Alloc Byte Over!!");
|
||||
@@ -3741,7 +3741,7 @@ void jmessage_tRenderingProcessor::do_rubyset(void const* i_data, u32 i_size) {
|
||||
buffer[0] = pRuby[index++];
|
||||
buffer[1] = pRuby[index++];
|
||||
buffer[2] = 0;
|
||||
strcat(field_0x152, (const char*)buffer);
|
||||
SAFE_STRCAT(field_0x152, (const char*)buffer);
|
||||
|
||||
int character = (((char)buffer[0] & 0xFF) << 8) | ((char)buffer[1] & 0xFF);
|
||||
if (field_0x14e != 0) {
|
||||
@@ -3763,7 +3763,7 @@ void jmessage_tRenderingProcessor::do_rubyset(void const* i_data, u32 i_size) {
|
||||
}
|
||||
}
|
||||
|
||||
void jmessage_tRenderingProcessor::do_rubystrcat(char* i_src, char* i_dst, f32 i_charSpace, f32 param_4) {
|
||||
void jmessage_tRenderingProcessor::do_rubystrcat(char* i_src, TEXT_SPAN i_dst, f32 i_charSpace, f32 param_4) {
|
||||
jmessage_tReference* pReference = (jmessage_tReference*)getReference();
|
||||
if (pReference->isCharSend()) {
|
||||
if (0.0f != param_4) {
|
||||
@@ -3772,18 +3772,18 @@ void jmessage_tRenderingProcessor::do_rubystrcat(char* i_src, char* i_dst, f32 i
|
||||
if (cursor_trans >= 1.0f) {
|
||||
char buffer[16];
|
||||
snprintf(buffer, sizeof(buffer) - 1, "\x1B" "CR[%d]", (int)cursor_trans);
|
||||
strcat(i_dst, buffer);
|
||||
SAFE_STRCAT(i_dst, buffer);
|
||||
field_0x12c += (int)cursor_trans;
|
||||
} else if (cursor_trans <= -1.0f) {
|
||||
char buffer[16];
|
||||
snprintf(buffer, sizeof(buffer) - 1, "\x1B" "CL[%d]", (int)-cursor_trans);
|
||||
strcat(i_dst, buffer);
|
||||
SAFE_STRCAT(i_dst, buffer);
|
||||
field_0x12c += (int)cursor_trans;
|
||||
}
|
||||
field_0x12c += field_0x128 + i_charSpace;
|
||||
}
|
||||
|
||||
strcat(i_dst, i_src);
|
||||
SAFE_STRCAT(i_dst, i_src);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4058,13 +4058,13 @@ bool jmessage_string_tMeasureProcessor::do_tag(u32 i_tag, void const* i_data, u3
|
||||
break;
|
||||
case MSGTAG_CURRENT_LETTER_PAGE: {
|
||||
char buffer[4];
|
||||
sprintf(buffer, "%d", dComIfGp_getMessageCountNumber() / 100);
|
||||
SAFE_SPRINTF(buffer, "%d", dComIfGp_getMessageCountNumber() / 100);
|
||||
stack_pushCurrent(buffer);
|
||||
break;
|
||||
}
|
||||
case MSGTAG_MAX_LETTER_PAGE: {
|
||||
char buffer[4];
|
||||
sprintf(buffer, "%d", dComIfGp_getMessageCountNumber() % 100);
|
||||
SAFE_SPRINTF(buffer, "%d", dComIfGp_getMessageCountNumber() % 100);
|
||||
stack_pushCurrent(buffer);
|
||||
break;
|
||||
}
|
||||
@@ -4481,11 +4481,11 @@ void jmessage_string_tRenderingProcessor::do_begin(void const* pEntry, char cons
|
||||
|
||||
void jmessage_string_tRenderingProcessor::do_end() {
|
||||
if (mpReference->getPanePtr() != NULL) {
|
||||
strcpy(mpReference->getPanePtr()->getStringPtr(), field_0x54);
|
||||
SAFE_STRCPY(mpReference->getPanePtr()->getStringPtr(), field_0x54);
|
||||
}
|
||||
|
||||
if (mpReference->getRubyPanePtr() != NULL) {
|
||||
strcpy(mpReference->getRubyPanePtr()->getStringPtr(), field_0x254);
|
||||
SAFE_STRCPY(mpReference->getRubyPanePtr()->getStringPtr(), field_0x254);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4616,13 +4616,13 @@ bool jmessage_string_tRenderingProcessor::do_tag(u32 i_tag, void const* i_data,
|
||||
break;
|
||||
case MSGTAG_CURRENT_LETTER_PAGE: {
|
||||
char buffer[4];
|
||||
sprintf(buffer, "%d", dComIfGp_getMessageCountNumber() / 100);
|
||||
SAFE_SPRINTF(buffer, "%d", dComIfGp_getMessageCountNumber() / 100);
|
||||
push_word(buffer);
|
||||
break;
|
||||
}
|
||||
case MSGTAG_MAX_LETTER_PAGE: {
|
||||
char buffer[4];
|
||||
sprintf(buffer, "%d", dComIfGp_getMessageCountNumber() % 100);
|
||||
SAFE_SPRINTF(buffer, "%d", dComIfGp_getMessageCountNumber() % 100);
|
||||
push_word(buffer);
|
||||
break;
|
||||
}
|
||||
@@ -5098,7 +5098,7 @@ void jmessage_string_tRenderingProcessor::do_strcat(char* i_str) {
|
||||
if (getLineCountNowPage() >= 0) {
|
||||
field_0x54e += strlen(i_str);
|
||||
if (field_0x54e < ARRAY_SIZE(field_0x54)) {
|
||||
strcat(field_0x54, i_str);
|
||||
SAFE_STRCAT(field_0x54, i_str);
|
||||
} else {
|
||||
JUT_WARN(7531, "%s", "Message Alloc Byte Over!!");
|
||||
}
|
||||
@@ -5129,7 +5129,7 @@ void jmessage_string_tRenderingProcessor::do_rubyset(void const* i_data, u32 i_s
|
||||
bytes[0] = pRuby[i++];
|
||||
bytes[1] = pRuby[i++];
|
||||
bytes[2] = 0;
|
||||
strcat(field_0x454, (const char*)bytes);
|
||||
SAFE_STRCAT(field_0x454, (const char*)bytes);
|
||||
|
||||
int character = (((char)bytes[0] & 0xFF) << 8) | ((char)bytes[1] & 0xFF);
|
||||
field_0x44 += charSpace + fontSize.mSizeX * ((f32)pFont->getWidth(character) / pFont->getCellWidth());
|
||||
@@ -5147,7 +5147,7 @@ void jmessage_string_tRenderingProcessor::do_rubystrcat(char* i_str) {
|
||||
if (getLineCountNowPage() >= 0) {
|
||||
field_0x550 += strlen(i_str);
|
||||
if (field_0x550 < ARRAY_SIZE(field_0x254)) {
|
||||
strcat(field_0x254, i_str);
|
||||
SAFE_STRCAT(field_0x254, i_str);
|
||||
} else {
|
||||
JUT_WARN(7613, "%s", "Message Alloc Byte Over!!");
|
||||
}
|
||||
@@ -5221,7 +5221,7 @@ void jmessage_string_tRenderingProcessor::do_color(u8 i_colorNo) {
|
||||
}
|
||||
|
||||
char buffer[32];
|
||||
sprintf(buffer, "\x1b" "CC[%08x]" "\x1b" "GC[%08x]", ccColor, gcColor);
|
||||
SAFE_SPRINTF(buffer, "\x1b" "CC[%08x]" "\x1b" "GC[%08x]", ccColor, gcColor);
|
||||
do_strcat(buffer);
|
||||
}
|
||||
|
||||
@@ -5232,13 +5232,13 @@ void jmessage_string_tRenderingProcessor::do_scale(f32 i_scale) {
|
||||
s16 scaleY = 0.5f + fontSize.mSizeY * i_scale;
|
||||
|
||||
char buffer[32];
|
||||
sprintf(buffer, "\x1b" "FX[%d]" "\x1b" "FY[%d]", scaleX, scaleY);
|
||||
SAFE_SPRINTF(buffer, "\x1b" "FX[%d]" "\x1b" "FY[%d]", scaleX, scaleY);
|
||||
do_strcat(buffer);
|
||||
}
|
||||
|
||||
void jmessage_string_tRenderingProcessor::do_linedown(s16 i_lineNo) {
|
||||
char buffer[16];
|
||||
sprintf(buffer, "\x1B" "CD[%d]", i_lineNo);
|
||||
SAFE_SPRINTF(buffer, "\x1B" "CD[%d]", i_lineNo);
|
||||
do_strcat(buffer);
|
||||
}
|
||||
|
||||
@@ -5257,6 +5257,6 @@ void jmessage_string_tRenderingProcessor::do_numset(s16 i_num) {
|
||||
}
|
||||
|
||||
void jmessage_string_tRenderingProcessor::push_word(char const* i_word) {
|
||||
strcpy(field_0x486, i_word);
|
||||
SAFE_STRCPY(field_0x486, i_word);
|
||||
stack_pushCurrent(field_0x486);
|
||||
}
|
||||
|
||||
+17
-17
@@ -466,12 +466,12 @@ int dMsgObject_c::_execute() {
|
||||
mpCtrl->setMessageCode(mpRefer->getRevoMessageID());
|
||||
mpRefer->setRevoMessageID(0);
|
||||
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
||||
strcpy(pRef->getTextPtr(), "");
|
||||
strcpy(pRef->getTextSPtr(), "");
|
||||
strcpy(pRef->getRubyPtr(), "");
|
||||
SAFE_STRCPY(pRef->getTextPtr(), "");
|
||||
SAFE_STRCPY(pRef->getTextSPtr(), "");
|
||||
SAFE_STRCPY(pRef->getRubyPtr(), "");
|
||||
for (int i = 0; i < 3; i++) {
|
||||
strcpy(pRef->getSelTextPtr(i), "");
|
||||
strcpy(pRef->getSelRubyPtr(i), "");
|
||||
SAFE_STRCPY(pRef->getSelTextPtr(i), "");
|
||||
SAFE_STRCPY(pRef->getSelRubyPtr(i), "");
|
||||
}
|
||||
}
|
||||
field_0x4ca = mpCtrl->update();
|
||||
@@ -1072,12 +1072,12 @@ void dMsgObject_c::continueProc() {
|
||||
offAutoMessageFlagLocal();
|
||||
setMessageIndex(field_0x100->msg_idx, field_0x100->field_0xf0, true);
|
||||
mpScrnDraw->fukiPosCalc(pRef->getFukiPosType());
|
||||
strcpy(pRef->getTextPtr(), "");
|
||||
strcpy(pRef->getTextSPtr(), "");
|
||||
strcpy(pRef->getRubyPtr(), "");
|
||||
SAFE_STRCPY(pRef->getTextPtr(), "");
|
||||
SAFE_STRCPY(pRef->getTextSPtr(), "");
|
||||
SAFE_STRCPY(pRef->getRubyPtr(), "");
|
||||
for (int i = 0; i < 3; i++) {
|
||||
strcpy(pRef->getSelTextPtr(i), "");
|
||||
strcpy(pRef->getSelRubyPtr(i), "");
|
||||
SAFE_STRCPY(pRef->getSelTextPtr(i), "");
|
||||
SAFE_STRCPY(pRef->getSelRubyPtr(i), "");
|
||||
}
|
||||
mpScrnDraw->arwAnimeInit();
|
||||
mpRenProc->setTextInitPos(mpScrnDraw->getTextBoxPosX(), mpScrnDraw->getTextBoxPosY());
|
||||
@@ -1788,8 +1788,8 @@ void dMsgObject_c::changeGroupLocal(s16 param_1) {
|
||||
}
|
||||
|
||||
bool dMsgObject_c::getStringLocal(u32 param_1, J2DTextBox* param_2, J2DTextBox* param_3,
|
||||
JUTFont* param_4, COutFont_c* param_5, char* param_6,
|
||||
char* param_7, char* param_8, s16* param_9) {
|
||||
JUTFont* param_4, COutFont_c* param_5, TEXT_SPAN param_6,
|
||||
TEXT_SPAN param_7, TEXT_SPAN param_8, s16* param_9) {
|
||||
if (field_0x4cd == 0) {
|
||||
if (getStatusLocal() == 1) {
|
||||
s16 groupID = getMessageGroup(param_1);
|
||||
@@ -1832,13 +1832,13 @@ bool dMsgObject_c::getStringLocal(u32 param_1, J2DTextBox* param_2, J2DTextBox*
|
||||
*param_9 = mpRefer->getCharSoundInfo().field_0x40e;
|
||||
}
|
||||
if (param_6 != NULL) {
|
||||
strcpy(param_6, pRef->getTextPtr());
|
||||
SAFE_STRCPY(param_6, pRef->getTextPtr());
|
||||
}
|
||||
if (param_7 != NULL) {
|
||||
strcpy(param_7, pRef->getRubyPtr());
|
||||
SAFE_STRCPY(param_7, pRef->getRubyPtr());
|
||||
}
|
||||
if (param_8 != NULL) {
|
||||
strcpy(param_8, pRef->getTextSPtr());
|
||||
SAFE_STRCPY(param_8, pRef->getTextSPtr());
|
||||
}
|
||||
mpCtrl->reset();
|
||||
mpCtrl->resetResourceCache();
|
||||
@@ -2360,8 +2360,8 @@ void dMsgObject_c::changeGroup(s16 param_0) {
|
||||
}
|
||||
|
||||
bool dMsgObject_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2,
|
||||
JUTFont* param_3, COutFont_c* param_4, char* param_5, char* param_6,
|
||||
char* param_7, s16* param_8) {
|
||||
JUTFont* param_3, COutFont_c* param_4, TEXT_SPAN param_5, TEXT_SPAN param_6,
|
||||
TEXT_SPAN param_7, s16* param_8) {
|
||||
return dMsgObject_getMsgObjectClass()->getStringLocal(
|
||||
param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8);
|
||||
}
|
||||
|
||||
@@ -294,15 +294,15 @@ void dMsgScrn3Select_c::setString(char* mpText0, char* mpText1, char* mpText2) {
|
||||
}
|
||||
|
||||
if (mpTmSel_c[0] != NULL) {
|
||||
strcpy(((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringPtr(), mpText0);
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringPtr(), mpText0);
|
||||
}
|
||||
|
||||
if (mpTmSel_c[1] != NULL) {
|
||||
strcpy(((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringPtr(), mpText1);
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringPtr(), mpText1);
|
||||
}
|
||||
|
||||
if (mpTmSel_c[2] != NULL) {
|
||||
strcpy(((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringPtr(), mpText2);
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringPtr(), mpText2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,15 +323,15 @@ void dMsgScrn3Select_c::setRubyString(char* pText0, char* pText1, char* pText2)
|
||||
}
|
||||
|
||||
if (mpTmrSel_c[0] != NULL) {
|
||||
strcpy(((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringPtr(), pText0);
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringPtr(), pText0);
|
||||
}
|
||||
|
||||
if (mpTmrSel_c[1] != NULL) {
|
||||
strcpy(((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringPtr(), pText1);
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringPtr(), pText1);
|
||||
}
|
||||
|
||||
if (mpTmrSel_c[2] != NULL) {
|
||||
strcpy(((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringPtr(), pText2);
|
||||
SAFE_STRCPY(((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringPtr(), pText2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -108,9 +108,9 @@ void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) {
|
||||
if (mpTm_c[i] != NULL) {
|
||||
JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText));
|
||||
if (i == 0) {
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), mpText);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), mpText);
|
||||
} else {
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), i_stringB);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), i_stringB);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,7 +120,7 @@ void dMsgScrnBase_c::setRubyString(char* mpText) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mpTmr_c[i] != NULL) {
|
||||
JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText));
|
||||
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), mpText);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), mpText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ void dMsgScrnExplain_c::draw(J2DOrthoGraph* i_graf) {
|
||||
}
|
||||
|
||||
char string_buf[STR_BUF_LEN];
|
||||
strcpy(string_buf, ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getStringPtr());
|
||||
SAFE_STRCPY(string_buf, ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getStringPtr());
|
||||
|
||||
mpTxScreen->draw(0.0f, 0.0f, (J2DGrafContext*)i_graf);
|
||||
#if VERSION == VERSION_GCN_JPN
|
||||
@@ -327,7 +327,7 @@ void dMsgScrnExplain_c::draw(J2DOrthoGraph* i_graf) {
|
||||
#endif
|
||||
mpString_c->drawOutFont((J2DTextBox*)mpTm_c[0]->getPanePtr(), -1.0f);
|
||||
|
||||
strcpy(((J2DTextBox*)mpTm_c[0]->getPanePtr())->getStringPtr(), string_buf);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTm_c[0]->getPanePtr())->getStringPtr(), string_buf);
|
||||
|
||||
if (mpSelect_c != NULL && (field_0x64 == 1 || field_0x64 == 2)) {
|
||||
// the magic numbers here are relative to the framebuffer size, but were likely
|
||||
@@ -370,11 +370,11 @@ void dMsgScrnExplain_c::open_request_proc() {
|
||||
bool rt = dMsgObject_getString(mOpenMsgId, tbox, rubyTbox, mDoExt_getMesgFont(), mpOutFont, text,
|
||||
ruby, textShadow, &field_0x5c);
|
||||
if (rt) {
|
||||
strcpy(((J2DTextBox*)mpTm_c[0]->getPanePtr())->getStringPtr(), text);
|
||||
strcpy(((J2DTextBox*)mpTm_c[1]->getPanePtr())->getStringPtr(), textShadow);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTm_c[0]->getPanePtr())->getStringPtr(), text);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTm_c[1]->getPanePtr())->getStringPtr(), textShadow);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (mpTmr_c[i] != NULL) {
|
||||
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), ruby);
|
||||
SAFE_STRCPY(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), ruby);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -483,12 +483,12 @@ void dMsgScrnExplain_c::move_select_init() {
|
||||
"\x1B"
|
||||
"CR[%d]",
|
||||
(int)var_f28);
|
||||
strcat(string_buf_yes, msg_buf_yes);
|
||||
SAFE_STRCAT(string_buf_yes, msg_buf_yes);
|
||||
snprintf(string_buf_no, 20,
|
||||
"\x1B"
|
||||
"CR[%d]",
|
||||
(int)var_f27);
|
||||
strcat(string_buf_no, msg_buf_no);
|
||||
SAFE_STRCAT(string_buf_no, msg_buf_no);
|
||||
|
||||
mpSelect_c->setString("", string_buf_yes, string_buf_no);
|
||||
mpSelect_c->setRubyString("", "", "");
|
||||
|
||||
@@ -126,7 +126,7 @@ u8 dMsgStringBase_c::getPageMax(int param_0) {
|
||||
return pageMax;
|
||||
}
|
||||
|
||||
f32 dMsgStringBase_c::getMessageLocal(u32 param_1, char* param_2) {
|
||||
f32 dMsgStringBase_c::getMessageLocal(u32 param_1, TEXT_SPAN param_2) {
|
||||
if (dMeter2Info_getMsgResource() != NULL) {
|
||||
if (param_1 > 5000) {
|
||||
if (field_0x1c != dMeter2Info_getStageMsgResource()) {
|
||||
@@ -146,7 +146,7 @@ f32 dMsgStringBase_c::getMessageLocal(u32 param_1, char* param_2) {
|
||||
mpCtrl->render();
|
||||
mpCtrl->reset();
|
||||
mpCtrl->resetResourceCache();
|
||||
strcpy(param_2, mpRenProc->getString());
|
||||
SAFE_STRCPY(param_2, mpRenProc->getString());
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ f32 dMsgStringBase_c::getStringPage(u32 param_0, u8 param_1, u8 param_2, J2DText
|
||||
return getStringPageLocal(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7);
|
||||
}
|
||||
|
||||
f32 dMsgStringBase_c::getMessage(u32 param_0, char* param_1) {
|
||||
f32 dMsgStringBase_c::getMessage(u32 param_0, TEXT_SPAN param_1) {
|
||||
return getMessageLocal(param_0, param_1);
|
||||
}
|
||||
|
||||
|
||||
+22
-22
@@ -42,21 +42,21 @@ dMsgUnit_c::dMsgUnit_c() {}
|
||||
dMsgUnit_c::~dMsgUnit_c() {}
|
||||
|
||||
#if REGION_JPN
|
||||
void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
void dMsgUnit_c::setTag(int i_type, int i_value, TEXT_SPAN o_buffer, bool param_4) {
|
||||
*o_buffer = 0;
|
||||
bool stack9 = false;
|
||||
bool stack8 = false;
|
||||
int value = i_value;
|
||||
|
||||
if (i_type == 0x10000) {
|
||||
sprintf(o_buffer, "%d", i_value);
|
||||
SAFE_SPRINTF(o_buffer, "%d", i_value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (i_type == 0x10001) {
|
||||
int tens_digit = i_value / 10;
|
||||
int ones_digit = i_value % 10;
|
||||
sprintf(o_buffer, "%d-%d", tens_digit, ones_digit);
|
||||
SAFE_SPRINTF(o_buffer, "%d-%d", tens_digit, ones_digit);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
}
|
||||
|
||||
if (i_type == 9 && param_4 == true) {
|
||||
sprintf(o_buffer, "%d", i_value);
|
||||
SAFE_SPRINTF(o_buffer, "%d", i_value);
|
||||
stack8 = true;
|
||||
}
|
||||
|
||||
@@ -170,9 +170,9 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
int uVar5Len = strlen(uVar5);
|
||||
if (uVar5Len == 0) {
|
||||
if (stack8) {
|
||||
strcat(o_buffer, value2);
|
||||
SAFE_STRCAT(o_buffer, value2);
|
||||
} else {
|
||||
sprintf(o_buffer, "%d%s", i_value, value2);
|
||||
SAFE_SPRINTF(o_buffer, "%d%s", i_value, value2);
|
||||
}
|
||||
} else {
|
||||
char unkCharArr[7];
|
||||
@@ -185,11 +185,11 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
unkCharArr[6] = 0;
|
||||
|
||||
if (stack8) {
|
||||
strcat(o_buffer, unkCharArr);
|
||||
strcat(o_buffer, uVar5);
|
||||
strcat(o_buffer, value2);
|
||||
SAFE_STRCAT(o_buffer, unkCharArr);
|
||||
SAFE_STRCAT(o_buffer, uVar5);
|
||||
SAFE_STRCAT(o_buffer, value2);
|
||||
} else {
|
||||
sprintf(o_buffer, "%d%s%s%s", i_value, unkCharArr, uVar5, value2);
|
||||
SAFE_SPRINTF(o_buffer, "%d%s%s%s", i_value, unkCharArr, uVar5, value2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -197,17 +197,17 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
if (i_type == 3 && param_4 == true) {
|
||||
char buffer[20];
|
||||
setTag(4, 0, buffer, false);
|
||||
strcat(o_buffer, buffer);
|
||||
SAFE_STRCAT(o_buffer, buffer);
|
||||
}
|
||||
|
||||
if (i_type == 4 && param_4 == true) {
|
||||
char buffer[20];
|
||||
setTag(5, value, buffer, false);
|
||||
strcat(o_buffer, buffer);
|
||||
SAFE_STRCAT(o_buffer, buffer);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
void dMsgUnit_c::setTag(int i_type, int i_value, TEXT_SPAN o_buffer, bool param_4) {
|
||||
*o_buffer = 0;
|
||||
bool stack9 = false;
|
||||
bool stack8 = false;
|
||||
@@ -218,14 +218,14 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
int minutes; // sp34
|
||||
|
||||
if (i_type == 0x10000) {
|
||||
sprintf(o_buffer, "%d", i_value);
|
||||
SAFE_SPRINTF(o_buffer, "%d", i_value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (i_type == 0x10001) {
|
||||
tens_digit = i_value / 10;
|
||||
ones_digit = i_value % 10;
|
||||
sprintf(o_buffer, "%d-%d", tens_digit, ones_digit);
|
||||
SAFE_SPRINTF(o_buffer, "%d-%d", tens_digit, ones_digit);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
seconds = 59;
|
||||
}
|
||||
if (minutes != 0 || seconds != 0) {
|
||||
sprintf(o_buffer, "%d:%02d", minutes, seconds);
|
||||
SAFE_SPRINTF(o_buffer, "%d:%02d", minutes, seconds);
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -254,11 +254,11 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
|
||||
iVar8b = ((s32)(1000000.0f * dayTime) % 250000) / 1000000.0f;
|
||||
f32 iVar9 = 60.0f * (iVar8b / 0.25f);
|
||||
sprintf(o_buffer, "%d:%02d", (s32)hour, (s32)minute);
|
||||
SAFE_SPRINTF(o_buffer, "%d:%02d", (s32)hour, (s32)minute);
|
||||
} else {
|
||||
if (i_type == 9 && param_4 == true) {
|
||||
int value = i_value;
|
||||
sprintf(o_buffer, "%d", value);
|
||||
SAFE_SPRINTF(o_buffer, "%d", value);
|
||||
stack8 = true;
|
||||
}
|
||||
|
||||
@@ -359,21 +359,21 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
|
||||
}
|
||||
|
||||
if (strcmp(uVar5, "") == 0) {
|
||||
sprintf(o_buffer, "%d%s", i_value, uVar5);
|
||||
SAFE_SPRINTF(o_buffer, "%d%s", i_value, uVar5);
|
||||
} else {
|
||||
sprintf(o_buffer, "%d %s", i_value, uVar5);
|
||||
SAFE_SPRINTF(o_buffer, "%d %s", i_value, uVar5);
|
||||
}
|
||||
}
|
||||
if (i_type == 3 && param_4 == true) {
|
||||
char buffer[20];
|
||||
setTag(4, 0, buffer, false);
|
||||
strcat(o_buffer, buffer);
|
||||
SAFE_STRCAT(o_buffer, buffer);
|
||||
}
|
||||
|
||||
if (i_type == 4 && param_4 == true) {
|
||||
char buffer[20];
|
||||
setTag(5, param_2b, buffer, false);
|
||||
strcat(o_buffer, buffer);
|
||||
SAFE_STRCAT(o_buffer, buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -908,7 +908,7 @@ void dName_c::setNameText() {
|
||||
#if REGION_JPN
|
||||
if (mChrInfo[i].mMojiSet == 2) {
|
||||
#endif
|
||||
sprintf(mNameText[i],
|
||||
SAFE_SPRINTF(mNameText[i],
|
||||
"\x1b"
|
||||
"CD\x1b"
|
||||
"CR\x1b"
|
||||
@@ -919,7 +919,7 @@ void dName_c::setNameText() {
|
||||
);
|
||||
#if REGION_JPN
|
||||
} else {
|
||||
sprintf(mNameText[i],
|
||||
SAFE_SPRINTF(mNameText[i],
|
||||
"\x1b"
|
||||
"CD\x1b"
|
||||
"CR\x1b"
|
||||
@@ -1330,7 +1330,7 @@ void dName_c::mojiListChange() {
|
||||
|
||||
char buf[74];
|
||||
for (int i = 0; i < 65; i++) {
|
||||
strcpy(buf, "\x1B"
|
||||
SAFE_STRCPY(buf, "\x1B"
|
||||
"CD"
|
||||
"\x1B"
|
||||
"CR"
|
||||
@@ -1338,15 +1338,15 @@ void dName_c::mojiListChange() {
|
||||
"CC[000000]"
|
||||
"\x1B"
|
||||
"GM[0]");
|
||||
strcat(buf, mojiSet[i]);
|
||||
strcat(buf, "\x1B"
|
||||
SAFE_STRCAT(buf, mojiSet[i]);
|
||||
SAFE_STRCAT(buf, "\x1B"
|
||||
"HM"
|
||||
"\x1B"
|
||||
"CC[ffffff]"
|
||||
"\x1B"
|
||||
"GM[0]");
|
||||
strcat(buf, mojiSet[i]);
|
||||
strcpy(mMojiText[i], buf);
|
||||
SAFE_STRCAT(buf, mojiSet[i]);
|
||||
SAFE_STRCPY(mMojiText[i], buf);
|
||||
}
|
||||
|
||||
#if TARGET_PC || REGION_PAL || REGION_JPN
|
||||
|
||||
@@ -1263,7 +1263,7 @@ bool dPa_control_c::readScene(u8 param_0, mDoDvdThd_toMainRam_c** param_1) {
|
||||
JUT_ASSERT(2647, !mSceneCount++);
|
||||
field_0x18 = param_0;
|
||||
static char jpcName[32];
|
||||
sprintf(jpcName, "/res/Particle/Pscene%03d.jpc", param_0);
|
||||
SAFE_SPRINTF(jpcName, "/res/Particle/Pscene%03d.jpc", param_0);
|
||||
*param_1 = mDoDvdThd_toMainRam_c::create(jpcName, 0, m_resHeap);
|
||||
return 1;
|
||||
}
|
||||
|
||||
+4
-4
@@ -165,22 +165,22 @@ void dScnPly_reg_childHIO_c::genMessage(JORMContext* mctx) {
|
||||
char textbuf[8];
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
sprintf(textbuf, " F(%02d)", i);
|
||||
SAFE_SPRINTF(textbuf, " F(%02d)", i);
|
||||
mctx->genSlider(textbuf, &mFloatReg[i], -100000.0f, 100000.0f);
|
||||
}
|
||||
|
||||
for (int i = 20; i < 25; i++) {
|
||||
sprintf(textbuf, " F(%02d)", i);
|
||||
SAFE_SPRINTF(textbuf, " F(%02d)", i);
|
||||
mctx->genSlider(textbuf, &mFloatReg[i], 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
for (int i = 25; i < 30; i++) {
|
||||
sprintf(textbuf, " F(%02d)", i);
|
||||
SAFE_SPRINTF(textbuf, " F(%02d)", i);
|
||||
mctx->genSlider(textbuf, &mFloatReg[i], -1.0f, 1.0f);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
sprintf(textbuf, " S(%02d)", i);
|
||||
SAFE_SPRINTF(textbuf, " S(%02d)", i);
|
||||
mctx->genSlider(textbuf, &mShortReg[i], -0x8000, 0x7FFF);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -178,7 +178,7 @@ static int loadDemoArchive(int i_roomNo) {
|
||||
int bank2 = entries[dComIfG_play_c::getLayerNo(i_roomNo)].bank2;
|
||||
JUT_ASSERT(353, 0 <= bank2 && bank2 < 100);
|
||||
|
||||
sprintf(dStage_roomControl_c::getDemoArcName(), "Demo%02d_%02d", bank, bank2);
|
||||
SAFE_SPRINTF(dStage_roomControl_c::getDemoArcName(), "Demo%02d_%02d", bank, bank2);
|
||||
if (!dComIfG_setObjectRes(dStage_roomControl_c::getDemoArcName(), 0, (JKRHeap*)NULL)) {
|
||||
const char* name = dStage_roomControl_c::getDemoArcName();
|
||||
*dStage_roomControl_c::getDemoArcName() = 0;
|
||||
|
||||
+1
-1
@@ -2379,7 +2379,7 @@ void flagFile_c::listenPropertyEvent(const JORPropertyEvent* i_event) {
|
||||
|
||||
const char* start_stage_name = dComIfGp_getStartStageName();
|
||||
char filename[64];
|
||||
sprintf(filename, "_%02d%02d%02d%02d%02d-%s.zff", time.mon + 1, time.mday, time.hour, time.min, time.sec, start_stage_name);
|
||||
SAFE_SPRINTF(filename, "_%02d%02d%02d%02d%02d-%s.zff", time.mon + 1, time.mday, time.hour, time.min, time.sec, start_stage_name);
|
||||
OS_REPORT("write to %s\n", filename);
|
||||
|
||||
JORFile file;
|
||||
|
||||
+2
-2
@@ -484,7 +484,7 @@ void* dStage_roomControl_c::roomDzs_c::add(u8 i_no, u8 roomNo) {
|
||||
void** dzs = m_dzs + i_no;
|
||||
if (*dzs == NULL) {
|
||||
char dzsName[20];
|
||||
sprintf(dzsName, "%s/room%d.dzs", dComIfGp_getStartStageName(), roomNo);
|
||||
SAFE_SPRINTF(dzsName, "%s/room%d.dzs", dComIfGp_getStartStageName(), roomNo);
|
||||
JUT_ASSERT(1167, strlen(dzsName) <= sizeof(dzsName));
|
||||
|
||||
u32 expandSize =
|
||||
@@ -2478,7 +2478,7 @@ static void readMult(dStage_dt_c* i_stage, dStage_Multi_c* multi, bool useOldRes
|
||||
|
||||
if (dzs == NULL) {
|
||||
char dzsName[11];
|
||||
sprintf(dzsName, "room%d.dzs", info->mRoomNo);
|
||||
SAFE_SPRINTF(dzsName, "room%d.dzs", info->mRoomNo);
|
||||
JUT_ASSERT(3548, strlen(dzsName) <= sizeof(dzsName));
|
||||
|
||||
if (useOldRes) {
|
||||
|
||||
+4
-4
@@ -1224,8 +1224,8 @@ BOOL dDlst_TimerScrnDraw_c::closeAnime() {
|
||||
int dDlst_TimerScrnDraw_c::createGetIn(cXyz i_pos) {
|
||||
char string[104];
|
||||
dMeter2Info_getString(0x3E4, string, NULL); // "GOAT IN!"
|
||||
strcpy(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in_s')))->getStringPtr(), string);
|
||||
strcpy(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in')))->getStringPtr(), string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in_s')))->getStringPtr(), string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in')))->getStringPtr(), string);
|
||||
|
||||
if (mCowID < 50) {
|
||||
m_getin_info[mCowID].bck_frame = 40.0f;
|
||||
@@ -1313,8 +1313,8 @@ int dDlst_TimerScrnDraw_c::createGetIn(cXyz i_pos) {
|
||||
s32 dDlst_TimerScrnDraw_c::createStart(u16 i_messageID) {
|
||||
char string[112];
|
||||
dMeter2Info_getString(i_messageID, string, NULL);
|
||||
strcpy(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in_s')))->getStringPtr(), string);
|
||||
strcpy(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in')))->getStringPtr(), string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in_s')))->getStringPtr(), string);
|
||||
SAFE_STRCPY(static_cast<J2DTextBox*>(mpGetInScreen->search(MULTI_CHAR('get_in')))->getStringPtr(), string);
|
||||
|
||||
if (mCowID == 0) {
|
||||
m_getin_info[mCowID].bck_frame = 40.0f;
|
||||
|
||||
@@ -172,6 +172,7 @@ namespace dusk::config {
|
||||
template class ConfigImpl<f64>;
|
||||
template class ConfigImpl<std::string>;
|
||||
template class ConfigImpl<dusk::BloomMode>;
|
||||
template class ConfigImpl<dusk::DepthOfFieldMode>;
|
||||
template class ConfigImpl<dusk::DiscVerificationState>;
|
||||
template class ConfigImpl<dusk::GameLanguage>;
|
||||
template class ConfigImpl<dusk::GyroMode>;
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace dusk {
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
char id_buf[32];
|
||||
sprintf(id_buf, "%d", proc->id);
|
||||
SAFE_SPRINTF(id_buf, "%d", proc->id);
|
||||
|
||||
int flags = ImGuiTreeNodeFlags_SpanAllColumns;
|
||||
bool isLayer = fpcBs_Is_JustOfType(g_fpcNd_type, proc->subtype);
|
||||
|
||||
@@ -550,7 +550,7 @@ namespace dusk {
|
||||
char nameBuffer[8];
|
||||
snprintf(nameBuffer, sizeof(nameBuffer), "%s", playerName);
|
||||
if (ImGui::InputText("##PlayerNameInput", nameBuffer, 8)) {
|
||||
strcpy(dComIfGs_getPlayerName(), nameBuffer);
|
||||
SAFE_STRCPY(dComIfGs_getPlayerName(), nameBuffer);
|
||||
}
|
||||
|
||||
const char* horseName = dComIfGs_getHorseName();
|
||||
@@ -559,7 +559,7 @@ namespace dusk {
|
||||
char horseNameBuffer[8];
|
||||
snprintf(horseNameBuffer, sizeof(horseNameBuffer), "%s", horseName);
|
||||
if (ImGui::InputText("##HorseNameInput", horseNameBuffer, 8)) {
|
||||
strcpy(dComIfGs_getHorseName(), horseNameBuffer);
|
||||
SAFE_STRCPY(dComIfGs_getHorseName(), horseNameBuffer);
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
@@ -745,8 +745,8 @@ namespace dusk {
|
||||
ImGui::SameLine();
|
||||
char nameBuffer[8];
|
||||
snprintf(nameBuffer, sizeof(nameBuffer), "%s", returnPlace.mName);
|
||||
if (ImGui::InputText("##SaveStageNameInput", nameBuffer, 8)) {
|
||||
strcpy(returnPlace.mName, nameBuffer);
|
||||
if (ImGui::InputText("##SaveStageNameInput", nameBuffer, sizeof(nameBuffer))) {
|
||||
SAFE_STRCPY(returnPlace.mName, nameBuffer);
|
||||
}
|
||||
|
||||
ImGui::Text("Room: ");
|
||||
@@ -787,8 +787,8 @@ namespace dusk {
|
||||
ImGui::SameLine();
|
||||
char horseStageBuffer[8];
|
||||
snprintf(horseStageBuffer, sizeof(horseStageBuffer), "%s", horsePlace.mName);
|
||||
if (ImGui::InputText("##HorseStageNameInput", horseStageBuffer, 8)) {
|
||||
strcpy(horsePlace.mName, horseStageBuffer);
|
||||
if (ImGui::InputText("##HorseStageNameInput", horseStageBuffer, sizeof(horseStageBuffer))) {
|
||||
SAFE_STRCPY(horsePlace.mName, horseStageBuffer);
|
||||
}
|
||||
|
||||
ImGui::Text("Room: ");
|
||||
|
||||
@@ -60,13 +60,13 @@ UserSettings g_userSettings = {
|
||||
// Graphics
|
||||
.bloomMode {"game.bloomMode", BloomMode::Dusk},
|
||||
.bloomMultiplier {"game.bloomMultiplier", 1.0f},
|
||||
.depthOfFieldMode{"game.depthOfFieldMode", DepthOfFieldMode::Dusk},
|
||||
.disableWaterRefraction {"game.disableWaterRefraction", false},
|
||||
.enableTextureReplacements {"game.enableTextureReplacements", true},
|
||||
.enableFrameInterpolation {"game.enableFrameInterpolation", FrameInterpMode::Off},
|
||||
.internalResolutionScale {"game.internalResolutionScale", 0},
|
||||
.shadowResolutionMultiplier {"game.shadowResolutionMultiplier", 1},
|
||||
.resampler {"game.resampler", Resampler::Bilinear},
|
||||
.enableDepthOfField {"game.enableDepthOfField", true},
|
||||
.enableMapBackground {"game.enableMapBackground", true},
|
||||
.disableCutscenePillarboxing {"game.disableCutscenePillarboxing", false},
|
||||
|
||||
@@ -225,12 +225,12 @@ void registerSettings() {
|
||||
Register(g_userSettings.game.enableDiscordPresence);
|
||||
Register(g_userSettings.game.bloomMode);
|
||||
Register(g_userSettings.game.bloomMultiplier);
|
||||
Register(g_userSettings.game.depthOfFieldMode);
|
||||
Register(g_userSettings.game.disableWaterRefraction);
|
||||
Register(g_userSettings.game.enableTextureReplacements);
|
||||
Register(g_userSettings.game.internalResolutionScale);
|
||||
Register(g_userSettings.game.resampler);
|
||||
Register(g_userSettings.game.shadowResolutionMultiplier);
|
||||
Register(g_userSettings.game.enableDepthOfField);
|
||||
Register(g_userSettings.game.enableMapBackground);
|
||||
Register(g_userSettings.game.disableCutscenePillarboxing);
|
||||
Register(g_userSettings.game.enableFastIronBoots);
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#include "dusk/string.hpp"
|
||||
#include "fmt/format.h"
|
||||
|
||||
namespace {
|
||||
void strncpyProxy(char* dst, const char* src, size_t count) {
|
||||
#if _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4996)
|
||||
#endif
|
||||
strncpy(dst, src, count);
|
||||
#if _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
}
|
||||
} // namespace
|
||||
|
||||
namespace dusk {
|
||||
|
||||
void TextSpan::CrashSpawnEmpty() {
|
||||
CRASH("Span is empty!");
|
||||
}
|
||||
|
||||
void SafeStringCopyTruncate(char* buffer, size_t bufSize, const char* src) {
|
||||
if (buffer == src) [[unlikely]] {
|
||||
CRASH("Cannot copy string to same buffer");
|
||||
}
|
||||
|
||||
if (bufSize == 0) [[unlikely]] {
|
||||
CRASH("Target buffer cannot be size zero");
|
||||
}
|
||||
|
||||
strncpyProxy(buffer, src, bufSize);
|
||||
buffer[bufSize - 1] = 0;
|
||||
}
|
||||
|
||||
void SafeStringCopy(char* buffer, size_t bufSize, const char* src) {
|
||||
if (bufSize == 0) [[unlikely]] {
|
||||
CRASH("Target buffer cannot be size zero");
|
||||
}
|
||||
|
||||
if (buffer == src) [[unlikely]] {
|
||||
CRASH("Cannot copy string to same buffer");
|
||||
}
|
||||
|
||||
const auto srcSize = strlen(src);
|
||||
if (srcSize > bufSize - 1) [[unlikely]] {
|
||||
const auto msg = fmt::format(
|
||||
"Destination buffer too small! Need %d, have %d",
|
||||
srcSize + 1,
|
||||
bufSize);
|
||||
CRASH("%s", msg.c_str());
|
||||
}
|
||||
|
||||
strncpyProxy(buffer, src, bufSize);
|
||||
buffer[bufSize - 1] = 0;
|
||||
}
|
||||
|
||||
void SafeStringCat(char* buffer, size_t bufSize, const char* src) {
|
||||
if (bufSize == 0) [[unlikely]] {
|
||||
CRASH("Target buffer cannot be size zero");
|
||||
}
|
||||
|
||||
if (buffer == src) [[unlikely]] {
|
||||
CRASH("Cannot copy string to same buffer");
|
||||
}
|
||||
|
||||
const auto dstSize = strnlen(buffer, bufSize);
|
||||
const auto srcSize = strlen(src);
|
||||
if (dstSize + srcSize + 1 > bufSize) [[unlikely]] {
|
||||
CRASH("Destination buffer too small!");
|
||||
}
|
||||
|
||||
memcpy(buffer + dstSize, src, srcSize);
|
||||
buffer[dstSize + srcSize] = 0;
|
||||
}
|
||||
|
||||
int SafeStringVPrintf(char* buffer, size_t bufSize, const char* src, std::va_list args) {
|
||||
if (bufSize == 0) [[unlikely]] {
|
||||
CRASH("Target buffer cannot be size zero");
|
||||
}
|
||||
|
||||
return vsnprintf(buffer, bufSize, src, args);
|
||||
}
|
||||
|
||||
} // namespace dusk
|
||||
@@ -196,7 +196,7 @@ Rml::String get_player_name() {
|
||||
if (!has_save_data()) {
|
||||
return "";
|
||||
}
|
||||
return dComIfGs_getPlayerName();
|
||||
return dComIfGs_getPlayerName().buffer;
|
||||
}
|
||||
|
||||
void set_player_name(Rml::String name) {
|
||||
@@ -207,7 +207,7 @@ Rml::String get_horse_name() {
|
||||
if (!has_save_data()) {
|
||||
return "";
|
||||
}
|
||||
return dComIfGs_getHorseName();
|
||||
return dComIfGs_getHorseName().buffer;
|
||||
}
|
||||
|
||||
void set_horse_name(Rml::String name) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user