Maintenance: Resubmission of 16340 over main 047268c0 (conflict in UICashEmotionPack::GetPriceText resolved keeping main's new body).

Batch #16351 by ragnarok-clanker: no function's compiled code changes; checked with 784 compiled unit(s), including every includer of Source/Archive/GPak.h, Source/Client/Browser/BrowserCommandTarget.h, Source/Client/Browser/BrowserDocumentUI.h, Source/Client/Browser/BrowserInPlace.h, Source/Client/Browser/WebBrowser.h, Source/Client/Input/Language.h, Source/Client/Input/LanguageTC.h, Source/Client/Input/Mouse.h, Source/Client/Mode/CGameMode.h, Source/Client/Mode/CLoginMode.h, Source/Client/Replay.h, Source/Client/Session.h, Source/Client/Stove/StovePCSDK.h, Source/Contents/AchievementMgr.h, Source/Contents/Actors/CharacterRender.h, Source/Contents/Actors/EffectActors.h, Source/Contents/Actors/GameActor.h, Source/Contents/Actors/GndRiser.h, Source/Contents/Actors/GrannyGameActor.h, Source/Contents/Actors/MousePointer.h, Source/Contents/Actors/Npc.h, Source/Contents/Actors/Pc.h, Source/Contents/Actors/RenderObjectState.h, Source/Contents/Actors/Skill.h, Source/Contents/AdventureGuideMgr.h, Source/Contents/CashEmotionMgr.h, Source/Contents/ClanInfo.h, Source/Contents/Configuration/GameSettingsMgr.h, Source/Contents/EffectResourceSwitcher.h, Source/Contents/Effects/AcidifiedThrow.h, Source/Contents/Effects/ArrowEffect.h, Source/Contents/Effects/AxeBoomerang.h, Source/Contents/Effects/BlastForge.h, Source/Contents/Effects/CharacterParticleBundle.h, Source/Contents/Effects/DummyEffectLauncher.h, Source/Contents/Effects/EZ2STREffectEx.h, Source/Contents/Effects/Effect.h, Source/Contents/Effects/EffectActor.h, Source/Contents/Effects/EffectEmitter.h, Source/Contents/Effects/EffectPrimitiveState.h, Source/Contents/Effects/EffectTypes.h, Source/Contents/Effects/ElectricEffect.h, Source/Contents/Effects/EmitterEffect.h, Source/Contents/Effects/FortuneKissEffect.h, Source/Contents/Effects/MagicFloorEffect.h, Source/Contents/Effects/MandraAttackEffect.h, Source/Contents/Effects/MonsterSkillEffects.h, Source/Contents/Effects/MsgEffect.h, Source/Contents/Effects/Particle.h, Source/Contents/Effects/RagEffectState.h, Source/Contents/Effects/RichManKim.h, Source/Contents/Effects/SpriteParticle.h, Source/Contents/Effects/StarEffect.h, Source/Contents/Effects/WhirlwindEffect.h, Source/Contents/EnchantMgr.h, Source/Contents/FlyingShipRouteInfo.h, Source/Contents/Ground/GroundSpatial.h, Source/Contents/GuildInfo.h, Source/Contents/Hotkeys/InterfaceHotkey.h, Source/Contents/Items/ItemInfo.h, Source/Contents/Items/RuneSystem.h, Source/Contents/MapSkyMgr.h, Source/Contents/Models/ModelActor.h, Source/Contents/Movies/BinkMovie.h, Source/Contents/NavigationManager.h, Source/Contents/Party/PartyBookingMgr.h, Source/Contents/PetEvolutionMgr.h, Source/Contents/RenewQuestMgr.h, Source/Contents/RodexMailStore.h, Source/Contents/Schedule/Schedule.h, Source/Contents/Schedule/ShutDownSchedule.h, Source/Contents/SignBoard/SignBoard.h, Source/Contents/Skills/PlayerSkillBundle.h, Source/Contents/Sound/SoundMgr.h, Source/Contents/SpriteLayerDrawing.h, Source/Contents/Store/MCStoreInfoBackupAsyncWork.h, Source/Contents/UserData/AccountLinkedUserDataLoadAsyncWork.h, Source/Contents/UserData/NormalItemSlots.h, Source/Contents/WorldView/WorldViewData.h, Source/Network/Connection/Connection.h, Source/Render/DX7/DeviceOwnerDX7.h, Source/Render/DX7/DirectDrawEnumeration.h, Source/Render/DX9/DeviceOwnerDX9.h, Source/Render/Primitives/LightmappedPrimitive.h, Source/Render/Primitives/RenderPrimitive.h, Source/Render/Renderer.h, Source/Render/RendererDX7.h, Source/Render/Text/EmbedFont.h, Source/Render/Text/TextContext.h, Source/Render/Textures/Texture.h, Source/Resource/BinkRuntime.h, Source/Resource/GifResource.h, Source/Resource/Models/AnimatedModelResource.h, Source/Resource/Models/GrannyModelResource.h, Source/Resource/Models/ModelMesh.h, Source/Resource/ResourceMgr.h, Source/Resource/World/GroundResource.h, Source/Resource/World/WorldResource.h, Source/Security/NProtectGameGuardMgr.h, Source/Security/ReassemblyPacketMgr.h, Source/UI/Buttons/UIBmpRadioBtn.h, Source/UI/Buttons/UIBmpTextButton2.h, Source/UI/Buttons/UIDescriptRace.h, Source/UI/Buttons/UIItemTagButton.h, Source/UI/Buttons/UITVTextButton.h, Source/UI/Buttons/UITextureButton.h, Source/UI/Chat/UINewChatWnd.h, Source/UI/Chat/UISubChatHisWnd.h, Source/UI/Dialogs/UILoadingWnd.h, Source/UI/Dialogs/UIMiniMapWnd.h, Source/UI/Dialogs/UIPasswordWnd.h, Source/UI/Dialogs/UIRestartWnd.h, Source/UI/Dialogs/UISayDialogWnd.h, Source/UI/Edit/UIEditCtrl.h, Source/UI/Enchant/EnchantUI.h, Source/UI/GameSettings/GameSettingsUI.h, Source/UI/Guild/UIGuildWnd.h, Source/UI/Item/UIItemStoreFindWnd.h, Source/UI/Item/UIItemStoreSubWnd.h, Source/UI/Item/UIItemStoreWnd.h, Source/UI/Items/UIEquipWnd.h, Source/UI/Items/UIExchangeWnd.h, Source/UI/Items/UIItemCollectionWnd.h, Source/UI/Items/UIItemRepairWnd.h, Source/UI/Items/UISwapEquipmentWnd.h, Source/UI/Lists/TableBox.h, Source/UI/Lists/UIListBox.h, Source/UI/Lists/UIListBoxEx.h, Source/UI/Lists/UIListBoxID.h, Source/UI/Lists/UIListBoxTemplate.h, Source/UI/Lists/UITabControl.h, Source/UI/Lists/UITreeView.h, Source/UI/Lists/UIVScrollBar.h, Source/UI/Navigation/UINavigationV4Wnd.h, Source/UI/Navigation/UIPrivateAirplaneWnd.h, Source/UI/Party/UIAdvenPartyBoardWnd.h, Source/UI/Party/UIRequestJoinPartyWnd.h, Source/UI/ProbabilityTable/UIProbabilityTable.h, Source/UI/Quest/UIRenewQuestWnd.h, Source/UI/Rodex/UIRodexComposeWnd.h, Source/UI/RuneSystem/UIRuneSystemWindows.h, Source/UI/RuneSystem/UIRuneSystemWnd.h, Source/UI/Shop/UIMerchantItemMyShopWnd.h, Source/UI/Shop/UIMerchantShopMakeWnd.h, Source/UI/Shop/UIMerchantShopTitle.h, Source/UI/StylingShop/UIStylingShopWnd.h, Source/UI/Text/CreateLineInfo.h, Source/UI/Text/TextMarkup.h, Source/UI/Text/UIString.h, Source/UI/Text/UITextViewer.h, Source/UI/Text/UITransBalloonText.h, Source/UI/UIChangeMaterialWnd.h, Source/UI/UIMacroDetectorWnd.h, Source/UI/UIMacroUserInfoWnd.h, Source/UI/Window/UIAccountLimitedToolWnd.h, Source/UI/Window/UIBalloonOpenBtn.h, Source/UI/Window/UIBasicInfoWnd.h, Source/UI/Window/UIBattleMsgOptionWnd.h, Source/UI/Window/UICollectionSystemWnd.h, Source/UI/Window/UIControl.h, Source/UI/Window/UIHotKeyWnd.h, Source/UI/Window/UIJobListWnd.h, Source/UI/Window/UILoginWnd.h, Source/UI/Window/UIMakeCharWnd.h, Source/UI/Window/UIMerInfoWnd.h, Source/UI/Window/UIMessageBox.h, Source/UI/Window/UIMonsterDisplayWnd.h, Source/UI/Window/UINewMakeCharWnd.h, Source/UI/Window/UINewSkillListWnd.h, Source/UI/Window/UINoticeWnd.h, Source/UI/Window/UIReplayRECControlWnd.h, Source/UI/Window/UIRoMapWnd.h, Source/UI/Window/UISecondCostumeWnd.h, Source/UI/Window/UISeekPartyListWnd.h, Source/UI/Window/UISeekPartyMBWnd.h, Source/UI/Window/UISeekPartyWnd.h, Source/UI/Window/UISerachStoreInfoWnd.h, Source/UI/Window/UIWindow.h, Source/UI/Window/UIWindowMgr.h, Source/UI/Window/WindowId.h, Source/Utility/Async/NAsyncWork.h, Source/Utility/Async/NRecycleObjectPoolMgr.h, Source/Utility/JsonCppLoader.h, Source/Utility/Lexicon/LexiconSerializer.h, Source/Utility/NFileLog.h, Source/Utility/Threading/NThread.h.
This commit is contained in:
ragnarok-clanker 2026-11-10 17:38:25 +00:00
commit 5ad8e0c58c
299 changed files with 2107 additions and 2107 deletions

View file

@ -55,7 +55,7 @@ namespace {
struct PakHeaderFile {
/* 0000 */ char signature[16];
/* 0010 */ std::uint8_t unknown_0010[14];
/* 0010 */ std::uint8_t padding_0010[14];
/* 001E */ std::uint32_t tableOffset;
/* 0022 */ std::uint32_t seed;
/* 0026 */ std::uint32_t entryCount;
@ -64,7 +64,7 @@ namespace {
struct PakHeaderFile64 {
/* 0000 */ char signature[16];
/* 0010 */ std::uint8_t unknown_0010[14];
/* 0010 */ std::uint8_t padding_0010[14];
/* 001E */ std::uint64_t tableOffset;
/* 0026 */ std::uint32_t entryCount;
/* 002A */ std::uint32_t version;
@ -99,9 +99,9 @@ namespace {
struct PakAuxiliaryFile {
/* 0000 */ std::uint8_t version;
/* 0001 */ std::uint8_t unknown_0001[3];
/* 0001 */ std::uint8_t padding_0001[3];
/* 0004 */ std::uint64_t identifier;
/* 000C */ std::uint32_t unknown_000C;
/* 000C */ std::uint32_t padding_000C;
};
#pragma pack(pop)
@ -1530,7 +1530,7 @@ struct PakLinkNode {
};
struct PakIntrusiveLink {
/* 0000 */ unsigned int unknown_0000;
/* 0000 */ unsigned int padding_0000;
/* 0004 */ PakLinkNode* m_prev;
/* 0008 */ PakLinkNode* m_next;
@ -1568,7 +1568,7 @@ __declspec(noinline) PakUniformRandom::PakUniformRandom(int minimum, int maximum
struct PakAuxiliaryHeader {
/* 0000 */ std::uint8_t version;
/* 0001 */ std::uint8_t keySource;
/* 0002 */ std::uint8_t unknown_0002[2];
/* 0002 */ std::uint8_t padding_0002[2];
/* 0004 */ std::uint32_t checksum;
/* 0008 */ std::uint8_t payload[96];
};
@ -1585,7 +1585,7 @@ struct PakAuxiliaryContext {
struct PakAuxiliaryState {
/* 0000 */ HashTable_655340 m_handlers;
/* 0020 */ PakMaskedKey48 m_key;
/* 0055 */ std::uint8_t unknown_0055[107];
/* 0055 */ std::uint8_t padding_0055[107];
/* 00C0 */ AES* m_cipher;
bool DecodeHeader(PakSpan_655A30 name, std::uint8_t* data, std::uint32_t size, PakAuxiliaryHeader* header);

View file

@ -26,10 +26,10 @@ namespace myGPack {
/* 0000 */ std::uint32_t alignedSize;
/* 0004 */ std::uint32_t compressedSize;
/* 0008 */ std::uint32_t originalSize;
/* 000C */ std::uint32_t unknown_000C;
/* 000C */ std::uint32_t padding_000C;
/* 0010 */ std::uint64_t dataOffset;
/* 0018 */ std::uint8_t flags;
/* 0019 */ std::uint8_t unknown_0019[3];
/* 0019 */ std::uint8_t padding_0019[3];
/* 001C */ PakName name;
};
@ -47,7 +47,7 @@ struct PakAuxiliary {
void Apply(const void* data, std::uint32_t size, const void* auxData, std::uint32_t auxSize);
bool Extract(std::string_view name, const std::uint8_t* data, std::uint32_t size, std::span<const std::uint8_t> scratch, void* output, std::uint32_t outputSize, unsigned flags);
/* 0000 */ std::uint8_t unknown_0000[244];
/* 0000 */ std::uint8_t padding_0000[244];
};
static_assert(sizeof(PakAuxiliary) == 244);
@ -72,7 +72,7 @@ protected:
/* 0008 */ CPakFile* m_file;
/* 000C */ std::uint32_t m_version;
/* 0010 */ std::uint32_t m_entryCount;
/* 0014 */ std::uint32_t unknown_0014;
/* 0014 */ std::uint32_t padding_0014;
/* 0018 */ std::uint64_t m_tableOffset;
/* 0020 */ std::uint32_t m_tableSize;
/* 0024 */ std::vector<myGPack::PakEntry> m_entries;

View file

@ -10,7 +10,7 @@ class BrowserClientSite;
class BrowserCommandTarget final : public IOleCommandTarget {
public:
// INLINED
explicit BrowserCommandTarget(BrowserClientSite* site) : unknown_0004(0), m_site(site) {
explicit BrowserCommandTarget(BrowserClientSite* site) : padding_0004(0), m_site(site) {
}
~BrowserCommandTarget();
@ -21,7 +21,7 @@ public:
HRESULT STDMETHODCALLTYPE Exec(const GUID* group, DWORD command, DWORD options, VARIANT* input, VARIANT* output) override;
private:
/* 0004 */ int unknown_0004;
/* 0004 */ int padding_0004;
/* 0008 */ BrowserClientSite* m_site;
};

View file

@ -10,7 +10,7 @@ class BrowserClientSite;
class BrowserDocumentUI final : public IDocHostUIHandler {
public:
// INLINED
explicit BrowserDocumentUI(BrowserClientSite* site) : unknown_0004(0), m_site(site) {
explicit BrowserDocumentUI(BrowserClientSite* site) : padding_0004(0), m_site(site) {
}
~BrowserDocumentUI();
@ -35,7 +35,7 @@ public:
HRESULT STDMETHODCALLTYPE FilterDataObject(IDataObject* data, IDataObject** filtered) override;
private:
/* 0004 */ int unknown_0004;
/* 0004 */ int padding_0004;
/* 0008 */ BrowserClientSite* m_site;
};

View file

@ -9,7 +9,7 @@ class BrowserClientSite;
class BrowserInPlaceFrame final : public IOleInPlaceFrame {
public:
// INLINED
explicit BrowserInPlaceFrame(BrowserClientSite* site) : unknown_0004(0), m_site(site) {
explicit BrowserInPlaceFrame(BrowserClientSite* site) : padding_0004(0), m_site(site) {
}
~BrowserInPlaceFrame();
@ -30,14 +30,14 @@ public:
HRESULT STDMETHODCALLTYPE TranslateAccelerator(MSG* message, WORD id) override;
private:
/* 0004 */ int unknown_0004;
/* 0004 */ int padding_0004;
/* 0008 */ BrowserClientSite* m_site;
};
class BrowserInPlaceSite final : public IOleInPlaceSite {
public:
// INLINED
explicit BrowserInPlaceSite(BrowserClientSite* site) : unknown_0004(0), m_frame(new BrowserInPlaceFrame(site)), m_site(site) {
explicit BrowserInPlaceSite(BrowserClientSite* site) : padding_0004(0), m_frame(new BrowserInPlaceFrame(site)), m_site(site) {
}
// INLINED
~BrowserInPlaceSite() {
@ -62,7 +62,7 @@ public:
HRESULT STDMETHODCALLTYPE OnPosRectChange(const RECT* position) override;
private:
/* 0004 */ int unknown_0004;
/* 0004 */ int padding_0004;
/* 0008 */ BrowserInPlaceFrame* m_frame;
/* 000C */ BrowserClientSite* m_site;
};

View file

@ -46,7 +46,7 @@ public:
/* 0010 */ HWND browserWindow;
/* 0014 */ int cursorState;
/* 0018 */ unsigned char auxiliaryVisible;
/* 0019 */ unsigned char unknown_0019[3];
/* 0019 */ unsigned char padding_0019[3];
/* 001C */ int screenWidth;
/* 0020 */ int screenHeight;
/* 0024 */ DWORD cookie;
@ -56,7 +56,7 @@ public:
/* 0034 */ int width;
/* 0038 */ int height;
/* 003C */ unsigned char restoreOption;
/* 003D */ unsigned char unknown_003D[3];
/* 003D */ unsigned char padding_003D[3];
};
extern WNDPROC lpPrevWndFunc;
@ -70,7 +70,7 @@ enum class BrowserCommand : WORD { Navigate = 1000 };
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CWebBrowser, host) == 0xC);
static_assert(offsetof(CWebBrowser, unknown_0019) == 0x19);
static_assert(offsetof(CWebBrowser, padding_0019) == 0x19);
static_assert(offsetof(CWebBrowser, cookie) == 0x24);
static_assert(offsetof(CWebBrowser, restoreOption) == 0x3C);
static_assert(sizeof(CWebBrowser) == 0x40);

View file

@ -37,14 +37,14 @@ struct CLanguageBase {
/* 0070 */ std::string candidate;
/* 0088 */ int compositionCursor;
/* 008C */ unsigned char password;
/* 008D */ unsigned char unknown_008D;
/* 008D */ unsigned char padding_008D;
/* 008E */ std::uint16_t language;
/* 0090 */ unsigned codePage;
/* 0094 */ int underlineStart;
/* 0098 */ int underlineEnd;
/* 009C */ std::string servicePrefix;
/* 00B4 */ std::uint16_t alternateLanguage;
/* 00B6 */ unsigned char unknown_00B6[2];
/* 00B6 */ unsigned char padding_00B6[2];
CLanguageBase();
const char* Candidate(int index) const;

View file

@ -19,7 +19,7 @@ struct CLanguageTC : CLanguageBase {
/* 00C0 */ std::array<TraditionalKeyMapping, 256> mappings;
/* 04C0 */ unsigned char keyStrokeEnabled;
/* 04C1 */ std::uint8_t keyStroke;
/* 04C2 */ unsigned char unknown_04C2[2];
/* 04C2 */ unsigned char padding_04C2[2];
CLanguageTC();
~CLanguageTC() override;

View file

@ -29,7 +29,7 @@ public:
/* 0030 */ std::uint32_t pressTicks[2] = {};
/* 0038 */ std::uint32_t doubleClickTime = 500;
/* 003C */ std::uint8_t active = 1;
/* 003D */ std::uint8_t unknown_003D[3] = {};
/* 003D */ std::uint8_t padding_003D[3] = {};
};
extern CMouse g_mouse;

View file

@ -108,7 +108,7 @@ public:
void ReceiveMacroReporterList(int count, const int* aids);
/* 0058 */ unsigned char areaBounds[0x10];
/* 0068 */ char mapName[16];
/* 0078 */ unsigned char unknown_0078[0xC];
/* 0078 */ unsigned char padding_0078[0xC];
/* 0084 */ std::vector<std::string> mapResources;
/* 0090 */ unsigned char minimapBmpName[0x3C];
/* 00CC */ CWorld* scene;
@ -166,7 +166,7 @@ public:
/* 02E0 */ int menuTargetAid;
/* 02E4 */ unsigned char nameBalloonSize[0x08];
/* 02EC */ std::string menuTargetName;
/* 0304 */ unsigned char unknown_0304[0x04];
/* 0304 */ unsigned char padding_0304[0x04];
/* 0308 */ ModeDragState drag;
/* 03C8 */ std::string chatRoomTitle;
/* 03E0 */ std::string chatRoomPassword;
@ -196,12 +196,12 @@ public:
/* 05B4 */ int yggdrasilUsePending;
/* 05B8 */ int lastPickItemTime;
/* 05BC */ int chatLogLines;
/* 05C0 */ unsigned char unknown_05C0[0x04];
/* 05C0 */ unsigned char padding_05C0[0x04];
/* 05C4 */ int bossMonsterX;
/* 05C8 */ int bossMonsterY;
/* 05CC */ unsigned char bossAlarmAndCopyNameFlags[0x02];
/* 05CE */ unsigned char inventoryChanged;
/* 05CF */ unsigned char unknown_05CF;
/* 05CF */ unsigned char padding_05CF;
/* 05D0 */ UIWindow* statusIconTooltip;
/* 05D4 */ std::list<unsigned long> periodicTicks;
/* 05DC */ std::map<int, std::string> miniMapTooltipWindows;
@ -220,9 +220,9 @@ public:
/* 0624 */ unsigned char isInitializing[0x4];
/* 0628 */ std::unordered_set<int> petFriendlyNoticeIds;
/* 0648 */ unsigned char recordItemPickups;
/* 0649 */ unsigned char unknown_0649[0x3];
/* 0649 */ unsigned char padding_0649[0x3];
/* 064C */ std::unordered_map<int, int> itemPickupCounts;
/* 066C */ unsigned char unknown_066C[0x4];
/* 066C */ unsigned char padding_066C[0x4];
std::string MapName();
UIBroadcastBalloon* EnsureBroadcastBalloon();
@ -386,12 +386,12 @@ public:
void ProcessActorClick(int& handled, ActorPickInfo* pick, CGameActor* actor);
void ProcessActorPick(int& handled, ActorPickInfo* pick, CGameActor* actor);
void ReceiveSkillUpdate(
std::uint16_t id, std::int16_t level, std::int16_t spCost, unsigned char upgradable, std::int16_t range, int type, std::int16_t unknown
std::uint16_t id, std::int16_t level, std::int16_t spCost, unsigned char upgradable, std::int16_t range, int type, std::int16_t learnedLevel
);
void ApplySkillUpdatePacket(const void* packet);
void ReceiveLearnedSkill(
std::uint16_t id, std::int16_t level, int type, std::uint8_t upgradable, std::int16_t spCost, std::int16_t range,
std::int16_t unknown0030
std::int16_t padding_0030
);
void ApplyAdditionalSkillPacket(const void* packet);
std::uint32_t FindChatRoomActorId(std::uint32_t key);
@ -480,7 +480,7 @@ public:
void ShowNoticeBalloon(const std::vector<std::string>* lines);
void UpdateBalloons();
void ChangeZoneServer(std::string mapName, int x, int y, int ip, int port, std::string host);
const char* Unknown04DCText();
const char* RecordChat4Text();
CPlayer* Player();
MinimapMarker* FindMinimapMarker(std::uint32_t key);
float CameraDesiredYaw();
@ -584,13 +584,13 @@ public:
void ReceiveGuildLeave2(const unsigned char* data);
void ReceivePartyInfo2(const unsigned char* data);
void ReceiveWhisper(const unsigned char* data);
void RefreshInventoryOrEquipItem(std::uint16_t itemId, unsigned char unknownValue, std::uint16_t refine, ItemCardSlots cards, ItemSlotOptions options);
void RefreshInventoryOrEquipItem(std::uint16_t itemId, unsigned char damaged, std::uint16_t refine, ItemCardSlots cards, ItemSlotOptions options);
void RefreshInventoryOrEquipItem2(const unsigned char* data);
void ReceiveRankingList(const unsigned char* data);
void ApplyStatusIcons(int level, unsigned int flags);
void ReceiveGuildStorageLogItems(const unsigned char* data);
void ReceiveWhisper2(const unsigned char* data);
void ProcessWhisper(int unknown_0004, std::string name, std::string text, bool flag);
void ProcessWhisper(int padding_0004, std::string name, std::string text, bool flag);
void SpawnGroundSkill(std::uint32_t aid, std::uint32_t owner, int value, std::int16_t x, std::int16_t y, int type, signed char level, unsigned char visible, unsigned char flags);
void Zc_Skill_Entry(const unsigned char* record);
void ReceiveStatusChangeEntry(const unsigned char* record);
@ -919,12 +919,12 @@ public:
void ReceiveActorStateEntryNamedOld(const unsigned char* data);
void ReceiveActorStateEntryOld(const unsigned char* data);
void SpawnStandingPc(
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short unknown_0024, int unknown_0028, int unknown_002C,
short unknown_0030, short unknown_004C, short unknown_0050, short unknown_0054, short unknown_0058, short robe, std::string name
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short padding_0024, int padding_0028, int padding_002C,
short padding_0030, short padding_004C, short padding_0050, short padding_0054, short padding_0058, short robe, std::string name
);
void SpawnStandingPc2(
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short unknown_0024, int unknown_0028, int unknown_002C,
short unknown_0030, short unknown_004C, short unknown_0050, short unknown_0054, short unknown_0058, short robe, std::string name, short unknown_0078
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short padding_0024, int padding_0028, int padding_002C,
short padding_0030, short padding_004C, short padding_0050, short padding_0054, short padding_0058, short robe, std::string name, short padding_0078
);
void SpawnMirrorActor(std::uint32_t aid, std::uint32_t owner, short x, short y);
void ReceiveActorMoveEntryOld(const unsigned char* data);
@ -1003,7 +1003,7 @@ static_assert(offsetof(CGameMode, statusIconTooltip) == 0x5D0);
static_assert(offsetof(CGameMode, notificationWindows) == 0x604);
static_assert(offsetof(CGameMode, petFriendlyNoticeIds) == 0x628);
static_assert(offsetof(CGameMode, itemPickupCounts) == 0x64C);
static_assert(offsetof(CGameMode, unknown_066C) == 0x66C);
static_assert(offsetof(CGameMode, padding_066C) == 0x66C);
static_assert(sizeof(CGameMode) == 0x670);
#endif
@ -1022,10 +1022,10 @@ extern std::map<int, MiniMapEffectMarker> g_miniMapEffectMarkers;
extern char g_pendingWhisperCount;
void CloseWhisperRecord();
extern unsigned char g_gameModePacketBuffer[0x10000];
extern int g_unknown173A5BC;
extern int g_unknown_01738268;
extern int g_unknown_0173826C;
extern int g_unknown_01738270;
extern int g_overweightThresholdPercent;
extern int g_buyingStoreMode;
extern int g_buyingStoreDbNumber;
extern int g_buyingStoreNoPermission;
extern std::string g_gameModeNamelessTag;
void __stdcall OpenWordDisplay(CGameActor* actor);

View file

@ -65,11 +65,11 @@ struct CharacterInfo {
};
struct CharacterSlotExtension {
/* 0000 */ unsigned char unknown_0000;
/* 0000 */ unsigned char padding_0000;
/* 0001 */ std::uint32_t code;
/* 0005 */ std::uint32_t time1;
/* 0009 */ std::uint32_t time2;
/* 000D */ unsigned char unknown_000D[7];
/* 000D */ unsigned char padding_000D[7];
};
#pragma pack(pop)
@ -113,9 +113,9 @@ public:
/* 01CC */ int characterCount;
/* 01D0 */ unsigned char loginExtra[0x8];
/* 01D8 */ int receivedCharacterCount;
/* 01DC */ int unknown_01DC;
/* 01DC */ int padding_01DC;
/* 01E0 */ bool characterDeleted;
/* 01E1 */ unsigned char unknown_01E1[0x3];
/* 01E1 */ unsigned char padding_01E1[0x3];
/* 01E4 */ std::uint32_t otpStarted;
/* 01E8 */ unsigned char serverList[0x3E80];
/* 4068 */ CharacterInfo characters[68];
@ -126,10 +126,10 @@ public:
/* 6F18 */ int passwordRetryCount;
/* 6F1C */ std::vector<int> noticeCommands;
/* 6F28 */ int authChallengeId;
/* 6F2C */ std::vector<int> unknown_6F2C;
/* 6F2C */ std::vector<int> padding_6F2C;
/* 6F38 */ std::vector<LoginStringRecord> accountInfo;
/* 6F44 */ unsigned char savedInlineCharset;
/* 6F45 */ unsigned char unknown_6F45[0x3];
/* 6F45 */ unsigned char padding_6F45[0x3];
/* 6F48 */ int selectedAccount;
/* 6F4C */ int selectedSecondaryAccount;
/* 6F50 */ std::string keycryptErrorInfo;
@ -137,7 +137,7 @@ public:
/* 6F74 */ bool loginResponseReceived;
/* 6F75 */ bool otpPending;
/* 6F76 */ bool otpTimedOut;
/* 6F77 */ unsigned char unknown_6F77[0x1];
/* 6F77 */ unsigned char padding_6F77[0x1];
/* 6F78 */ int remainingLoginSeconds;
int Run() override;

View file

@ -527,7 +527,7 @@ __declspec(noinline) void CGameMode::UpdatePetFriendlyNoticeIds(int id, bool add
// OFFSET: 0x00CF0070
// FUNCTION: fn_21410
const char* CGameMode::Unknown04DCText() {
const char* CGameMode::RecordChat4Text() {
return reinterpret_cast<std::string*>(reinterpret_cast<char*>(this) + 0x4DC)->c_str();
}
@ -937,7 +937,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
case MM_ADD_ITEM_TO_STORE: {
g_session.FlagInventoryItem(static_cast<std::uint32_t>(argument1));
const GameModePacketWordDword packet{
g_unknown_01738268 != 0 ? 0x9E1 : 0x364,
g_buyingStoreMode != 0 ? 0x9E1 : 0x364,
static_cast<std::uint16_t>(argument1), static_cast<std::uint32_t>(argument2)
};
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetId), &packet);
@ -946,14 +946,14 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
case MM_MOVE_ITEM_FROM_STORE_TO_BODY: {
g_session.FlagCartItem(static_cast<std::uint32_t>(argument1));
const GameModePacketWordDword packet{
g_unknown_01738268 != 0 ? 0x9E2 : 0x365,
g_buyingStoreMode != 0 ? 0x9E2 : 0x365,
static_cast<std::uint16_t>(argument1), static_cast<std::uint32_t>(argument2)
};
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetId), &packet);
return 0;
}
case MM_CLOSE_STORE: {
const std::uint16_t packet = g_unknown_01738268 != 0 ? 0x9BE : 0x193;
const std::uint16_t packet = g_buyingStoreMode != 0 ? 0x9BE : 0x193;
GetRagConnection().Send(g_packetLengths.FixedLength(packet), &packet);
return 0;
}
@ -995,7 +995,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
if (!this->IsMenuWindowOpen()) {
g_session.FlagCartItem(static_cast<std::uint32_t>(argument1));
const GameModePacketWordDword packet{
g_unknown_01738268 != 0 ? 0x9E4 : 0x128,
g_buyingStoreMode != 0 ? 0x9E4 : 0x128,
static_cast<std::uint16_t>(argument1), static_cast<std::uint32_t>(argument2)
};
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetId), &packet);
@ -1005,7 +1005,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
if (!this->IsMenuWindowOpen()) {
g_session.FlagMerchantShopItem(static_cast<std::uint32_t>(argument1));
const GameModePacketWordDword packet{
g_unknown_01738268 != 0 ? 0x9E3 : 0x129,
g_buyingStoreMode != 0 ? 0x9E3 : 0x129,
static_cast<std::uint16_t>(argument1), static_cast<std::uint32_t>(argument2)
};
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetId), &packet);
@ -4175,7 +4175,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
case MM_MOVE_ITEM_TO_PERSONAL: {
g_session.FlagCartItem(static_cast<std::uint32_t>(argument1));
const GameModePacketDwordWordDword packet{
0xC22, g_unknown_01738268 != 0 ? 1U : 0U, static_cast<std::uint16_t>(argument1), static_cast<std::uint32_t>(argument2)
0xC22, g_buyingStoreMode != 0 ? 1U : 0U, static_cast<std::uint16_t>(argument1), static_cast<std::uint32_t>(argument2)
};
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetId), &packet);
return 0;
@ -5295,15 +5295,15 @@ std::string CGameMode::HuntTargetText(const RenewQuestOngoingInfo& quest, int in
std::string text;
if (std::strlen(quest.m_huntName[index]) == 0) {
text = static_cast<const std::string&>(
g_renewQuestMgr->GetMonsterConditionText(quest.m_huntUnknown01A0[index], quest.m_huntUnknown01AC[index], quest.m_huntUnknown01B2[index]));
g_renewQuestMgr->GetMonsterConditionText(quest.m_huntConditionFlags[index], quest.m_huntMinLevel[index], quest.m_huntMaxLevel[index]));
} else {
text = static_cast<const std::string&>(FormatOwnedString("%s", quest.m_huntName[index]));
}
if (quest.m_huntUnknown00E0[index] == quest.m_huntUnknown0180[index]) {
if (quest.m_huntKillCount[index] == quest.m_huntMaxCount[index]) {
text = static_cast<const std::string&>(FormatOwnedString("%s [ %s ]", text.c_str(), LookupMessage(MSI_COMPLETE_HUNTING_QUEST)));
} else {
text = static_cast<const std::string&>(FormatOwnedString("%s [ %d / %d ]", text.c_str(), quest.m_huntUnknown00E0[index], quest.m_huntUnknown0180[index]));
text = static_cast<const std::string&>(FormatOwnedString("%s [ %d / %d ]", text.c_str(), quest.m_huntKillCount[index], quest.m_huntMaxCount[index]));
}
return text;
@ -6107,7 +6107,7 @@ struct GameModeUiKindTextMessage {
/* 0002 */ std::uint16_t type;
/* 0004 */ std::uint16_t length;
/* 0006 */ int kind;
/* 000A */ int unknown_000A;
/* 000A */ int padding_000A;
/* 000E */ char text[1];
};
@ -6492,7 +6492,7 @@ struct ZoneEnterPacket {
/* 0002 */ std::uint32_t aid;
/* 0006 */ std::uint32_t gid;
/* 000A */ int authCode;
/* 000E */ unsigned char unknown_000E[4];
/* 000E */ unsigned char padding_000E[4];
/* 0012 */ std::uint32_t clientTime;
/* 0016 */ unsigned char sex;
};
@ -7266,7 +7266,7 @@ void CGameMode::InitializeState() {
g_windowMgr.EnsureWindow(WID_QUIKSLOTWND);
}
if (g_session.m_partyBooking.unknown_0000) {
if (g_session.m_partyBooking.seekWindowOpen) {
g_windowMgr.EnsureWindow(WID_SEEKPARTYWND);
}
@ -7769,7 +7769,7 @@ namespace EquipmentProperties {
class CEquipmentPropertiesMgr {
public:
virtual ~CEquipmentPropertiesMgr();
/* 0004 */ unsigned char unknown_0004[0x1F8];
/* 0004 */ unsigned char padding_0004[0x1F8];
CEquipmentPropertiesMgr();
void RefreshPretend();
@ -8052,7 +8052,7 @@ void CGameMode::ReceiveSkillList(int packetType, const std::vector<SkillListEntr
// OFFSET: 0x00D07250
// FUNCTION: fn_21581
void CGameMode::ReceiveSkillUpdate(
std::uint16_t id, std::int16_t level, std::int16_t spCost, unsigned char upgradable, std::int16_t range, int type, std::int16_t unknown
std::uint16_t id, std::int16_t level, std::int16_t spCost, unsigned char upgradable, std::int16_t range, int type, std::int16_t learnedLevel
) {
*reinterpret_cast<int*>(&this->equipmentRequestState[0x0C]) = 0;
@ -8062,7 +8062,7 @@ void CGameMode::ReceiveSkillUpdate(
skill.upgradable = upgradable;
skill.range = range;
skill.type = type;
skill.learnedLevel = unknown;
skill.learnedLevel = learnedLevel;
skill.id = id;
if (g_session.IsHomunculusSkill(id)) {
@ -9048,7 +9048,7 @@ void CGameMode::ProcessInput() {
}
if ((handled == 1 || g_mouse.buttons[0] == 1) && g_mouse.buttons[0] == 1) {
g_unknown173AD3F = false;
g_moveRequestPending = false;
this->SendMsg(MM_CANCEL_USE_SKILL, 0, 0, 0, 0);
if (timeGetTime() > this->noMoveStartTick + 5000) {
this->noMove = 0;
@ -9474,13 +9474,13 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
g_windowMgr.SendNotice(UIM_OPENCHATWND, 0, 0, 0, 0, 0);
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(LookupMessage(g_serviceOptions.Get(0xB) ? 0x1B : 0x1C)), 0x64FFFF, 0, 0, 0);
if (g_serviceOptions.Get(0xB)) {
g_soundMgr->unknown = 0;
g_soundMgr->tingOnly = 0;
}
g_windowMgr.RefreshGameSettings();
break;
case TT_TINGONLY_ON_OFF:
g_soundMgr->unknown = g_soundMgr->unknown == 0;
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(LookupMessage(g_soundMgr->unknown ? 0x5DA : 0x5DB)), 0x64FFFF, 0, 0, 0);
g_soundMgr->tingOnly = g_soundMgr->tingOnly == 0;
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(LookupMessage(g_soundMgr->tingOnly ? 0x5DA : 0x5DB)), 0x64FFFF, 0, 0, 0);
break;
case TT_FRAMESKIP_ON_OFF:
g_frameskip = 1 - g_frameskip;
@ -10137,7 +10137,7 @@ void CGameMode::ProcessActorPick(int& handled, ActorPickInfo* pick, CGameActor*
bool resetCursor = false;
if (pick) {
if (this->scene->isBattleFieldMode != 0) {
if (actor && g_session.playerTeam[0] != actor->render.unknown_00FB) {
if (actor && g_session.playerTeam[0] != actor->render.battleTeam) {
attack = 1;
}
} else {
@ -10586,7 +10586,7 @@ int CGameMode::HandleActorPick(ActorPickInfo* pick, int result) {
attack = 1;
}
}
} else if (actor != nullptr && g_session.playerTeam[0] != actor->render.unknown_00FB) {
} else if (actor != nullptr && g_session.playerTeam[0] != actor->render.battleTeam) {
attack = 1;
}

View file

@ -112,7 +112,7 @@ struct RuneRewardStepEntry {
struct RuneListPacket {
/* 0000 */ std::int16_t id;
/* 0002 */ std::uint16_t length;
/* 0004 */ unsigned char unknown_0004;
/* 0004 */ unsigned char padding_0004;
/* 0005 */ std::uint16_t tagId;
/* 0007 */ std::uint16_t count;
};
@ -534,7 +534,7 @@ void CGameMode::ReceivePartyBookingRegisterResult(const unsigned char* packet) {
void CGameMode::ReceivePartyBookingUpdateResult(const unsigned char* packet) {
const std::int16_t result = *reinterpret_cast<const std::int16_t*>(packet + 2);
if (result == 0) {
g_session.m_partyBooking.unknown_0034 = GetTickCount();
g_session.m_partyBooking.registeredTick = GetTickCount();
g_windowMgr.EnsureWindow(WID_SEEKPARTYWND);
UISeekPartyWnd* seekWindow = static_cast<UISeekPartyWnd*>(g_windowMgr.LookupWindow(WID_SEEKPARTYWND));
if (seekWindow) {
@ -2246,7 +2246,7 @@ void CGameMode::ReceiveAchievementResult(unsigned char result, int id) {
const int index = g_session.AddAchievementJobTitle(id);
if (index != -1) {
g_session.AddUnknownId(index);
g_session.AddAchievementId(index);
}
}
@ -2870,31 +2870,31 @@ struct Item1718PendingRecord {
/* 0009 */ std::int32_t itemId;
/* 000D */ std::uint16_t sprite;
/* 000F */ std::uint32_t location;
/* 0013 */ unsigned char unknown_0013[6];
/* 0013 */ unsigned char padding_0013[6];
};
#pragma pack(pop)
static_assert(sizeof(Item1718PendingRecord) == 0x19);
struct Unknown015D4818Values {
/* 0000 */ std::uint32_t unknown_0000[2];
/* 0000 */ std::uint32_t padding_0000[2];
/* 0008 */ std::uint32_t location;
/* 000C */ std::uint32_t unknown_000C[25];
/* 000C */ std::uint32_t padding_000C[25];
/* 0070 */ std::uint32_t sprite;
};
struct Unknown015D4818Entry {
/* 0000 */ std::uint32_t unknown_0000[2];
/* 0000 */ std::uint32_t padding_0000[2];
/* 0008 */ Unknown015D4818Values values;
};
struct Unknown015D4818 {
/* 0000 */ std::uint32_t unknown_0000;
/* 0000 */ std::uint32_t padding_0000;
/* 0004 */ Unknown015D4818Entry* entry;
};
// GLOBAL: gl_25368
Unknown015D4818* g_unknown_015D4818;
Unknown015D4818* g_pendingCashItemList;
// OFFSET: 0x00D3BD40
// FUNCTION: fn_21790
@ -2921,8 +2921,8 @@ void CGameMode::ReceivePendingItem1718List(const unsigned char* packet) {
item.id = -1;
item.identified = 1;
g_session.AddShopItem(item, 0);
if (g_unknown_015D4818 && g_unknown_015D4818->entry) {
Unknown015D4818Values& values = g_unknown_015D4818->entry->values;
if (g_pendingCashItemList && g_pendingCashItemList->entry) {
Unknown015D4818Values& values = g_pendingCashItemList->entry->values;
values.sprite = record->sprite;
values.location = record->location;
}

View file

@ -20,7 +20,7 @@ public:
CEquipmentPropertiesMgr();
void AddExpansion(const int& kind, const int& itemId, bool notify);
unsigned char unknown_0000[0x1FC];
unsigned char padding_0000[0x1FC];
};
}

View file

@ -275,7 +275,7 @@ struct RouletteInfoSlot {
/* 0002 */ std::int16_t column;
/* 0004 */ int itemId;
/* 0008 */ std::int16_t count;
/* 000A */ std::int16_t unknown_000A;
/* 000A */ std::int16_t padding_000A;
};
struct RouletteInfoPacket {
@ -1835,13 +1835,13 @@ void CGameMode::ReceiveMacroReporterList(int count, const int* aids) {
}
// GLOBAL: gl_25111
int g_unknown_01738268;
int g_buyingStoreMode;
// GLOBAL: gl_25112
int g_unknown_0173826C;
int g_buyingStoreDbNumber;
// GLOBAL: gl_25113
int g_unknown_01738270;
int g_buyingStoreNoPermission;
@ -1866,9 +1866,9 @@ void CGameMode::ReceiveStorageClose(const AchievementStatePacket* packet) {
}
g_session.ClearCartItems();
g_unknown_01738268 = 0;
g_unknown_0173826C = 0;
g_unknown_01738270 = 0;
g_buyingStoreMode = 0;
g_buyingStoreDbNumber = 0;
g_buyingStoreNoPermission = 0;
}
// OFFSET: 0x00D6C460
@ -2102,12 +2102,12 @@ void CGameMode::ReceiveBuyingStoreResult(const BuyingStoreResultPacket* packet)
std::memset(text, 0, 250);
message = 0x9C1;
} else if (result == 3) {
g_unknown_01738270 = 1;
g_buyingStoreNoPermission = 1;
std::memset(text, 0, 250);
message = 0x9C2;
} else if (result == 1) {
g_unknown_01738268 = 1;
g_unknown_0173826C = packet->value;
g_buyingStoreMode = 1;
g_buyingStoreDbNumber = packet->value;
if (packet->value != 0) {
return;
}
@ -5067,12 +5067,12 @@ void CGameMode::ReceiveOngoingQuestList(const unsigned char* data) {
const auto* hunt = reinterpret_cast<const OngoingQuestHunt*>(cursor);
cursor += sizeof(OngoingQuestHunt);
info.m_huntId[i] = hunt->huntId;
info.m_huntUnknown01A0[i] = hunt->conditionFlags;
info.m_huntUnknown00D4[i] = hunt->mobId;
info.m_huntUnknown00E0[i] = hunt->count;
info.m_huntUnknown0180[i] = hunt->maxCount;
info.m_huntUnknown01AC[i] = hunt->minLevel;
info.m_huntUnknown01B2[i] = hunt->maxLevel;
info.m_huntConditionFlags[i] = hunt->conditionFlags;
info.m_huntMobId[i] = hunt->mobId;
info.m_huntKillCount[i] = hunt->count;
info.m_huntMaxCount[i] = hunt->maxCount;
info.m_huntMinLevel[i] = hunt->minLevel;
info.m_huntMaxLevel[i] = hunt->maxLevel;
const int mobId = hunt->mobId;
if ((mobId < 1001 || mobId > 3998) && static_cast<unsigned int>(mobId - 20021) > 11978) {
if (mobId == 0x1099) {
@ -5127,12 +5127,12 @@ void CGameMode::ReceiveOngoingQuestList2(const unsigned char* data) {
const auto* hunt = reinterpret_cast<const OngoingQuestHunt2*>(cursor);
cursor += sizeof(OngoingQuestHunt2);
info.m_huntId[i] = hunt->huntId;
info.m_huntUnknown01A0[i] = hunt->conditionFlags;
info.m_huntUnknown00D4[i] = hunt->mobId;
info.m_huntUnknown00E0[i] = hunt->count;
info.m_huntUnknown0180[i] = hunt->maxCount;
info.m_huntUnknown01AC[i] = hunt->minLevel;
info.m_huntUnknown01B2[i] = hunt->maxLevel;
info.m_huntConditionFlags[i] = hunt->conditionFlags;
info.m_huntMobId[i] = hunt->mobId;
info.m_huntKillCount[i] = hunt->count;
info.m_huntMaxCount[i] = hunt->maxCount;
info.m_huntMinLevel[i] = hunt->minLevel;
info.m_huntMaxLevel[i] = hunt->maxLevel;
const int mobId = hunt->mobId;
if ((mobId < 1001 || mobId > 3998) && static_cast<unsigned int>(mobId - 20021) > 11978) {
if (mobId == 0x1099) {
@ -5610,17 +5610,17 @@ void CGameMode::ReceiveQuestHuntUpdate(const unsigned char* data) {
}
}
if (index < 3) {
info.m_huntUnknown00E0[index] = entry.count;
info.m_huntUnknown0180[index] = entry.maxCount;
info.m_huntKillCount[index] = entry.count;
info.m_huntMaxCount[index] = entry.maxCount;
notices.push_back(this->HuntTargetText(info, index));
std::string name;
if (info.m_huntUnknown00D4[index] == 0x7CFF) {
name.assign(g_renewQuestMgr->GetMonsterConditionText(info.m_huntUnknown01A0[index], info.m_huntUnknown01AC[index], info.m_huntUnknown01B2[index]));
if (info.m_huntMobId[index] == 0x7CFF) {
name.assign(g_renewQuestMgr->GetMonsterConditionText(info.m_huntConditionFlags[index], info.m_huntMinLevel[index], info.m_huntMaxLevel[index]));
} else {
name.assign(info.m_huntName[index]);
}
name = static_cast<const std::string&>(FormatOwnedString(LookupMessage(MSI_CLEAR_QUEST_MONSTER), info.m_title.c_str(), name.c_str(), info.m_huntUnknown00E0[index], entry.maxCount));
name = static_cast<const std::string&>(FormatOwnedString(LookupMessage(MSI_CLEAR_QUEST_MONSTER), info.m_title.c_str(), name.c_str(), info.m_huntKillCount[index], entry.maxCount));
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(name.c_str()), 0xFFFF, 19, 0, 0);
g_renewQuestMgr->SetOngoingQuest(entry.questId, info);
}
@ -5656,17 +5656,17 @@ void CGameMode::ReceiveQuestHuntUpdate2(const unsigned char* data) {
}
}
if (index < 3) {
info.m_huntUnknown00E0[index] = entry.count;
info.m_huntUnknown0180[index] = entry.maxCount;
info.m_huntKillCount[index] = entry.count;
info.m_huntMaxCount[index] = entry.maxCount;
notices.push_back(this->HuntTargetText(info, index));
std::string name;
if (info.m_huntUnknown00D4[index] == 0x7CFF) {
name.assign(g_renewQuestMgr->GetMonsterConditionText(info.m_huntUnknown01A0[index], info.m_huntUnknown01AC[index], info.m_huntUnknown01B2[index]));
if (info.m_huntMobId[index] == 0x7CFF) {
name.assign(g_renewQuestMgr->GetMonsterConditionText(info.m_huntConditionFlags[index], info.m_huntMinLevel[index], info.m_huntMaxLevel[index]));
} else {
name.assign(info.m_huntName[index]);
}
name = static_cast<const std::string&>(FormatOwnedString(LookupMessage(MSI_CLEAR_QUEST_MONSTER), info.m_title.c_str(), name.c_str(), info.m_huntUnknown00E0[index], entry.maxCount));
name = static_cast<const std::string&>(FormatOwnedString(LookupMessage(MSI_CLEAR_QUEST_MONSTER), info.m_title.c_str(), name.c_str(), info.m_huntKillCount[index], entry.maxCount));
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(name.c_str()), 0xFFFF, 19, 0, 0);
g_renewQuestMgr->SetOngoingQuest(entry.questId, info);
}
@ -7375,7 +7375,7 @@ struct EquipItemUpdatePacket {
// OFFSET: 0x00D6D850
// FUNCTION: fn_22091
void CGameMode::RefreshInventoryOrEquipItem(std::uint16_t itemId, unsigned char unknownValue, std::uint16_t refine, ItemCardSlots cards, ItemSlotOptions options) {
void CGameMode::RefreshInventoryOrEquipItem(std::uint16_t itemId, unsigned char damaged, std::uint16_t refine, ItemCardSlots cards, ItemSlotOptions options) {
ITEM_INFO item = LookupClientItemByIdentity(g_session.m_inventoryItems, itemId);
int lookup = 0;
int slot = 0;
@ -7388,7 +7388,7 @@ void CGameMode::RefreshInventoryOrEquipItem(std::uint16_t itemId, unsigned char
}
}
item.damaged = unknownValue;
item.damaged = damaged;
item.refiningLevel = refine;
std::memcpy(item.cards, cards.cards, sizeof(cards.cards));
item.optionCount = CountItemSlotOptions(options.options);
@ -7648,7 +7648,7 @@ void CGameMode::ApplyStatusIcons(int level, unsigned int flags) {
// OFFSET: 0x00D1A520
// FUNCTION: fn_21618
void CGameMode::ProcessWhisper(int unknown_0004, std::string name, std::string text, bool flag) {
void CGameMode::ProcessWhisper(int shortcutId, std::string name, std::string text, bool flag) {
const std::string sender(name);
std::vector<char> message(text.begin(), text.end());
message.push_back('\0');
@ -7657,7 +7657,7 @@ void CGameMode::ProcessWhisper(int unknown_0004, std::string name, std::string t
line.append(" : ");
line.append(message.data());
if (g_windowMgr.ShowWhisperFrom(name.c_str(), line.c_str(), 0x222222, static_cast<std::uint32_t>(unknown_0004)) != 0) {
if (g_windowMgr.ShowWhisperFrom(name.c_str(), line.c_str(), 0x222222, static_cast<std::uint32_t>(shortcutId)) != 0) {
if (g_session.autoReplyState[0] != 0) {
char notice[24];
std::sprintf(notice, LookupMessage(MSI_AUTO_MSG2));
@ -7704,22 +7704,22 @@ void CGameMode::ProcessWhisper(int unknown_0004, std::string name, std::string t
if (g_windowMgr.IsFriend(name.c_str())) {
prefix = "[ Friend ";
prefix.append(sender);
if (unknown_0004 != 0) {
prefix.append(" (" + ShortcutFilename(static_cast<std::uint32_t>(unknown_0004)) + ")");
if (shortcutId != 0) {
prefix.append(" (" + ShortcutFilename(static_cast<std::uint32_t>(shortcutId)) + ")");
}
prefix = prefix + " ] : " + message.data();
} else if (flag) {
prefix = "[ ";
prefix.append(sender);
if (unknown_0004 != 0) {
prefix.append(" (" + ShortcutFilename(static_cast<std::uint32_t>(unknown_0004)) + ")");
if (shortcutId != 0) {
prefix.append(" (" + ShortcutFilename(static_cast<std::uint32_t>(shortcutId)) + ")");
}
prefix = prefix + " ] : " + message.data();
} else if (g_session.IsGuildMemberName(name.c_str())) {
prefix = "[ Member ";
prefix.append(sender);
if (unknown_0004 != 0) {
prefix.append(" (" + ShortcutFilename(static_cast<std::uint32_t>(unknown_0004)) + ")");
if (shortcutId != 0) {
prefix.append(" (" + ShortcutFilename(static_cast<std::uint32_t>(shortcutId)) + ")");
}
prefix = prefix + " ] : " + message.data();
} else {
@ -7733,8 +7733,8 @@ void CGameMode::ProcessWhisper(int unknown_0004, std::string name, std::string t
}
prefix = "( From ";
prefix.append(sender);
if (unknown_0004 != 0) {
prefix.append(" [" + ShortcutFilename(static_cast<std::uint32_t>(unknown_0004)) + "]");
if (shortcutId != 0) {
prefix.append(" [" + ShortcutFilename(static_cast<std::uint32_t>(shortcutId)) + "]");
}
prefix = prefix + " ) : " + message.data();
}

View file

@ -184,7 +184,7 @@ namespace {
struct SimulationPacketHeader {
/* 0000 */ std::uint16_t packetType;
/* 0002 */ std::uint16_t length;
/* 0004 */ std::uint32_t unknown_0004;
/* 0004 */ std::uint32_t padding_0004;
/* 0008 */ int value;
/* 000C */ unsigned char name[0x18];
};
@ -192,9 +192,9 @@ namespace {
struct EnchantSimulationRecord {
/* 0000 */ int itemId;
/* 0004 */ int resultItemId;
/* 0008 */ std::uint32_t unknown_0008[2];
/* 0008 */ std::uint32_t padding_0008[2];
/* 0010 */ int rate;
/* 0014 */ std::uint32_t unknown_0014;
/* 0014 */ std::uint32_t padding_0014;
/* 0018 */ int count;
};
@ -217,7 +217,7 @@ namespace {
/* 0007 */ int second;
/* 000B */ std::uint16_t current;
/* 000D */ std::uint16_t total;
/* 000F */ unsigned char unknown_000F[4];
/* 000F */ unsigned char padding_000F[4];
/* 0013 */ char name[1];
};
@ -1357,7 +1357,7 @@ void CGameMode::ReceiveHpSpRecovery(const unsigned char* packet, int variant) {
}
// GLOBAL: gl_24965
int g_unknown173A5BC;
int g_overweightThresholdPercent;
// OFFSET: 0x00D50580
// FUNCTION: fn_21884
@ -1369,7 +1369,7 @@ void CGameMode::IgnoreRemovedPacket7(const unsigned char*) {
__declspec(noinline) void CGameMode::ReceiveOverweightThreshold(const unsigned char* packet) {
const int value = *reinterpret_cast<const int*>(packet + 2);
if (value > 0) {
g_unknown173A5BC = value;
g_overweightThresholdPercent = value;
}
}
@ -4189,7 +4189,7 @@ public:
void RefreshExpansion(const int& kind, const int& itemId);
CEquipmentWearable* FindProperty1(const int& key);
void UnequipWearable(const int& location);
unsigned char unknown_0004[0x1F8];
unsigned char padding_0004[0x1F8];
};
}
@ -4743,9 +4743,9 @@ void CGameMode::ReceiveParChange(unsigned char* data) {
const int percent = (g_session.m_weight * 100) / (g_session.m_maxWeight < 1 ? 1 : g_session.m_maxWeight);
if (oldPercent < percent) {
if (percent >= g_unknown173A5BC && oldPercent < g_unknown173A5BC) {
if (percent >= g_overweightThresholdPercent && oldPercent < g_overweightThresholdPercent) {
g_windowMgr.SendNotice(UIM_OPENCHATWND, 0, 0, 0, 0, 0);
text = FormatOwnedString(LookupMessage(MSI_USA_LOGINERRORMSG_UNKNOWN), g_unknown173A5BC);
text = FormatOwnedString(LookupMessage(MSI_USA_LOGINERRORMSG_UNKNOWN), g_overweightThresholdPercent);
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(text.c_str()), 0xFF, 8, 0, 0);
}
if (percent > 89 && oldPercent < 90) {
@ -4757,7 +4757,7 @@ void CGameMode::ReceiveParChange(unsigned char* data) {
if (oldPercent <= percent) {
break;
}
if (percent < g_unknown173A5BC && g_unknown173A5BC <= oldPercent) {
if (percent < g_overweightThresholdPercent && g_overweightThresholdPercent <= oldPercent) {
g_windowMgr.SendNotice(UIM_OPENCHATWND, 0, 0, 0, 0, 0);
g_windowMgr.SendNotice(UIM_PUSHINTOCHATHISTORY, reinterpret_cast<std::intptr_t>(LookupMessage(MSI_NO_RECOVER_OVERWEIGHT_RELEASED)), 0xFFFF00, 8, 0, 0);
}
@ -7592,11 +7592,11 @@ void CGameMode::ReceiveAddQuest64(const unsigned char* data) {
for (int i = 0; i < packet->huntCount; ++i) {
const AddQuestHunt64& hunt = hunts[i];
info.m_huntId[i] = hunt.huntId;
info.m_huntUnknown01A0[i] = hunt.condition;
info.m_huntUnknown00D4[i] = hunt.mobId;
info.m_huntUnknown00E0[i] = hunt.count;
info.m_huntUnknown01AC[i] = hunt.minLevel;
info.m_huntUnknown01B2[i] = hunt.maxLevel;
info.m_huntConditionFlags[i] = hunt.condition;
info.m_huntMobId[i] = hunt.mobId;
info.m_huntKillCount[i] = hunt.count;
info.m_huntMinLevel[i] = hunt.minLevel;
info.m_huntMaxLevel[i] = hunt.maxLevel;
const int mobId = hunt.mobId;
if ((mobId < 1001 || mobId > 3998) && static_cast<unsigned int>(mobId - 20021) > 11978) {
if (mobId == 0x1099) {
@ -7645,11 +7645,11 @@ void CGameMode::ReceiveAddQuest(const unsigned char* data) {
for (int i = 0; i < packet->huntCount; ++i) {
const AddQuestHunt& hunt = hunts[i];
info.m_huntId[i] = hunt.huntId;
info.m_huntUnknown01A0[i] = hunt.condition;
info.m_huntUnknown00D4[i] = hunt.mobId;
info.m_huntUnknown00E0[i] = hunt.count;
info.m_huntUnknown01AC[i] = hunt.minLevel;
info.m_huntUnknown01B2[i] = hunt.maxLevel;
info.m_huntConditionFlags[i] = hunt.condition;
info.m_huntMobId[i] = hunt.mobId;
info.m_huntKillCount[i] = hunt.count;
info.m_huntMinLevel[i] = hunt.minLevel;
info.m_huntMaxLevel[i] = hunt.maxLevel;
const int mobId = hunt.mobId;
if ((mobId < 1001 || mobId > 3998) && static_cast<unsigned int>(mobId - 20021) > 11978) {
if (mobId == 0x1099) {
@ -10361,7 +10361,7 @@ static_assert(sizeof(ActorDisappearPacket) == 7);
void CGameMode::ReceiveActorDisappear(const unsigned char* data) {
const ActorDisappearPacket* packet = reinterpret_cast<const ActorDisappearPacket*>(data);
this->nameCard.Erase(packet->aid);
g_session.EraseUnknownKey(packet->aid);
g_session.EraseSummonHp(packet->aid);
if (g_session.elementalGid == packet->aid) {
g_session.SetElementalGid(-1);
}
@ -11886,8 +11886,8 @@ static_assert(sizeof(ActorStandEntry) == 0x7C);
// OFFSET: 0x00D7AFA0
// FUNCTION: fn_22199
void CGameMode::SpawnStandingPc(
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short unknown_0024, int unknown_0028, int unknown_002C,
short unknown_0030, short unknown_004C, short unknown_0050, short unknown_0054, short unknown_0058, short robe, std::string name
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short head, int weapon, int shield,
short accessory, short accessory2, short accessory3, short headPalette, short bodyPalette, short robe, std::string name
) {
ActorStandEntry entry;
entry.aid = aid;
@ -11896,14 +11896,14 @@ void CGameMode::SpawnStandingPc(
entry.cellX = cellX;
entry.cellY = cellY;
entry.direction = 4;
entry.head = unknown_0024;
entry.weapon = unknown_0028;
entry.shield = unknown_002C;
entry.accessory = unknown_0030;
entry.accessory2 = unknown_004C;
entry.accessory3 = unknown_0050;
entry.headPalette = unknown_0054;
entry.bodyPalette = unknown_0058;
entry.head = head;
entry.weapon = weapon;
entry.shield = shield;
entry.accessory = accessory;
entry.accessory2 = accessory2;
entry.accessory3 = accessory3;
entry.headPalette = headPalette;
entry.bodyPalette = bodyPalette;
entry.robe = robe;
if (name.size() != 0) {
this->nameCard.SetName(aid, name);
@ -11927,8 +11927,8 @@ void CGameMode::SpawnStandingPc(
// OFFSET: 0x00D7B170
// FUNCTION: fn_22200
void CGameMode::SpawnStandingPc2(
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short unknown_0024, int unknown_0028, int unknown_002C,
short unknown_0030, short unknown_004C, short unknown_0050, short unknown_0054, short unknown_0058, short robe, std::string name, short unknown_0078
std::uint32_t aid, int job, short cellX, short cellY, unsigned char sex, short head, int weapon, int shield,
short accessory, short accessory2, short accessory3, short headPalette, short bodyPalette, short robe, std::string name, short bodyCostume
) {
ActorStandEntry entry;
entry.aid = aid;
@ -11937,16 +11937,16 @@ void CGameMode::SpawnStandingPc2(
entry.cellX = cellX;
entry.cellY = cellY;
entry.direction = 4;
entry.head = unknown_0024;
entry.weapon = unknown_0028;
entry.shield = unknown_002C;
entry.accessory = unknown_0030;
entry.accessory2 = unknown_004C;
entry.accessory3 = unknown_0050;
entry.headPalette = unknown_0054;
entry.bodyPalette = unknown_0058;
entry.head = head;
entry.weapon = weapon;
entry.shield = shield;
entry.accessory = accessory;
entry.accessory2 = accessory2;
entry.accessory3 = accessory3;
entry.headPalette = headPalette;
entry.bodyPalette = bodyPalette;
entry.robe = robe;
entry.bodyCostume = unknown_0078;
entry.bodyCostume = bodyCostume;
if (name.size() != 0) {
this->nameCard.SetName(aid, name);
}
@ -15103,7 +15103,7 @@ void CGameMode::ReceiveActorStateEntryNamedBody(const unsigned char* data) {
#pragma pack(push, 1)
struct RefineBroadcastPacket {
/* 0000 */ std::uint16_t packetType;
/* 0002 */ std::uint16_t unknown_0002;
/* 0002 */ std::uint16_t padding_0002;
/* 0004 */ int itemId;
/* 0008 */ char name[24];
/* 0020 */ int materialId;
@ -15113,7 +15113,7 @@ struct RefineBroadcastPacket {
struct TradeBroadcastPacket {
/* 0000 */ std::uint16_t packetType;
/* 0002 */ std::uint16_t unknown_0002;
/* 0002 */ std::uint16_t padding_0002;
/* 0004 */ int itemId;
/* 0008 */ char name[24];
/* 0020 */ char otherName[24];
@ -15121,7 +15121,7 @@ struct TradeBroadcastPacket {
struct ItemBroadcastPacket {
/* 0000 */ std::uint16_t packetType;
/* 0002 */ std::uint16_t unknown_0002;
/* 0002 */ std::uint16_t padding_0002;
/* 0004 */ int itemId;
/* 0008 */ char name[24];
};
@ -20281,7 +20281,7 @@ struct ItemSlotOptions {
struct ChatRoomMemberUpdateInfo {
/* 0000 */ std::string title;
/* 0018 */ std::string unknown_0018;
/* 0018 */ std::string padding_0018;
/* 0030 */ int type;
/* 0034 */ int memberCount;
/* 0038 */ int memberLimit;
@ -20290,7 +20290,7 @@ struct ChatRoomMemberUpdateInfo {
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(ChatRoomMemberUpdateInfo) == 0x40);
static_assert(offsetof(ChatRoomMemberUpdateInfo, unknown_0018) == 0x18);
static_assert(offsetof(ChatRoomMemberUpdateInfo, padding_0018) == 0x18);
static_assert(offsetof(ChatRoomMemberUpdateInfo, type) == 0x30);
#endif
@ -25039,9 +25039,9 @@ void CGameMode::ProcessIncomingPackets() {
RenewQuestOngoingInfo info = quest;
for (int index = i; index < 3; ++index) {
if (*reinterpret_cast<const int *>(entry + 4) == info.m_huntUnknown00D4[index]) {
info.m_huntUnknown00E0[index] = *reinterpret_cast<const std::int16_t *>(entry + 0xA);
info.m_huntUnknown0180[index] = *reinterpret_cast<const std::int16_t *>(entry + 8);
if (*reinterpret_cast<const int *>(entry + 4) == info.m_huntMobId[index]) {
info.m_huntKillCount[index] = *reinterpret_cast<const std::int16_t *>(entry + 0xA);
info.m_huntMaxCount[index] = *reinterpret_cast<const std::int16_t *>(entry + 8);
g_renewQuestMgr->SetOngoingQuest(*reinterpret_cast<const unsigned int *>(entry), info);
break;
}

View file

@ -132,7 +132,7 @@ struct AcceptEnterPacket {
/* 0000 */ std::int16_t id;
/* 0002 */ std::uint16_t length;
/* 0004 */ CharacterSlotExtension extension;
/* 0018 */ unsigned char unknown_0018[3];
/* 0018 */ unsigned char padding_0018[3];
/* 001B */ CharacterInfo characters[1];
};
@ -325,7 +325,7 @@ const char* g_loginWallpaperName = "";
struct SessionAccount {
/* 0000 */ int sex;
/* 0004 */ int unknown_0004;
/* 0004 */ int padding_0004;
/* 0008 */ int authCode;
/* 000C */ int userLevel;
/* 0010 */ std::uint32_t lastLoginIp;
@ -665,7 +665,7 @@ void CLoginMode::ReceiveCharacterSlots(const CharacterSlotsPacket* packet) {
SecureZeroMemory(this->characters, sizeof(this->characters));
g_session.characterSlotState = 0;
this->receivedCharacterCount = 0;
this->unknown_01DC = 0;
this->padding_01DC = 0;
this->slotExtension = packet->extension;
this->slotExtension.code = htonl(this->slotExtension.code);
@ -2233,7 +2233,7 @@ void CLoginMode::ShowLoginError(int code, int argument) {
// OFFSET: 0x00D8C6A0
// FUNCTION: fn_22258
CLoginMode::CLoginMode() : wallpaperName(), noticeCommands(), unknown_6F2C(), accountInfo(), keycryptErrorInfo(), mapStates() {
CLoginMode::CLoginMode() : wallpaperName(), noticeCommands(), padding_6F2C(), accountInfo(), keycryptErrorInfo(), mapStates() {
this->fadeInRequested = 1;
this->nextKeepaliveTime = timeGetTime() + 12000;
this->savedInlineCharset = g_inlineCharset;
@ -2243,7 +2243,7 @@ CLoginMode::CLoginMode() : wallpaperName(), noticeCommands(), unknown_6F2C(), ac
this->passwordRetryCount = 0;
SecureZeroMemory(this->characters, sizeof(this->characters));
this->receivedCharacterCount = 0;
this->unknown_01DC = 0;
this->padding_01DC = 0;
this->characterDeleted = false;
}
@ -2914,7 +2914,7 @@ void CLoginMode::PollNetworkStatus() {
case ID_ZC_RECOVER_PENALTY_OVERWEIGHT: {
const int value = reinterpret_cast<const IntValuePacket*>(g_gameModePacketBuffer)->value;
if (value > 0) {
g_unknown173A5BC = value;
g_overweightThresholdPercent = value;
}
break;
}
@ -3435,7 +3435,7 @@ struct ZoneEnterPacket {
/* 0002 */ std::uint32_t aid;
/* 0006 */ std::uint32_t gid;
/* 000A */ int authCode;
/* 000E */ unsigned char unknown_000E[4];
/* 000E */ unsigned char padding_000E[4];
/* 0012 */ std::uint32_t clientTime;
/* 0016 */ unsigned char sex;
};
@ -4189,7 +4189,7 @@ void CLoginMode::OnChangeState(int value) {
g_session.m_playerY = header.cellY;
g_session.m_playerDir = header.playerDirection;
g_windowMgr.ApplyReplayOptions(header.options);
g_session.ResetUnknownState();
g_session.ResetCharacterSlotState();
g_session.ReadReplayCharacter(Replay::Instance().ReadSection(3));
char mapName[56];
std::sprintf(mapName, "%s.rsw", g_session.m_navigationPlayerMap);

View file

@ -868,7 +868,7 @@ ReplayFileList& ReplayFileList::Instance() {
// FUNCTION: fn_19339
bool Replay::SetHeaderInfo(
std::uint32_t key0, std::uint32_t key1, const char* characterName, const char* mapName, int accountId, int cellX, int cellY, int playerDirection, int service,
int serviceType, int unknown0014
int serviceType, int sessionSyncValue
) {
if (!characterName || !mapName) {
return false;
@ -877,7 +877,7 @@ bool Replay::SetHeaderInfo(
std::memcpy(this->header.characterName, characterName, sizeof(this->header.characterName));
this->header.service = service;
this->header.serviceType = serviceType;
this->header.sessionSyncValue = unknown0014;
this->header.sessionSyncValue = sessionSyncValue;
this->header.key0 = key0;
this->header.key1 = key1;
this->header.accountId = accountId;
@ -1151,7 +1151,7 @@ std::vector<unsigned char> CSession::BuildCompanionReplayRecords() {
namespace {
#pragma pack(push, 1)
struct ReplayShopNameRecord {
/* 0000 */ std::int16_t unknown;
/* 0000 */ std::int16_t padding_0000;
/* 0002 */ char name[16];
/* 0012 */ int shopId;
};
@ -1297,7 +1297,7 @@ std::vector<unsigned char> CSession::BuildShopReplayRecords() {
AppendRecord(records, MakeReplayRecord(7500, nullptr, 0));
for (auto it = this->m_nameToId.begin(); it != this->m_nameToId.end(); ++it) {
ReplayShopNameRecord value;
value.unknown = 0;
value.padding_0000 = 0;
value.shopId = it->second;
std::memset(value.name, 0, sizeof(value.name));
std::memcpy(value.name, it->first.c_str(), (std::min)(it->first.size(), sizeof(value.name)));

View file

@ -24,10 +24,10 @@ struct ReplayCachedPacket {
#pragma pack(push, 1)
struct ReplayOptions {
/* 0000 */ unsigned char unknown_0000[6];
/* 0000 */ unsigned char padding_0000[6];
/* 0006 */ unsigned char recordRestricted;
/* 0007 */ unsigned char showItemSlots;
/* 0008 */ unsigned char unknown_0008[22];
/* 0008 */ unsigned char padding_0008[22];
unsigned char Get(ReplayRecordOption option) const {
return reinterpret_cast<const unsigned char*>(this)[static_cast<std::size_t>(option)];
@ -150,7 +150,7 @@ public:
void Rewind();
bool SetHeaderInfo(
std::uint32_t key0, std::uint32_t key1, const char* characterName, const char* mapName, int accountId, int cellX, int cellY, int playerDirection, int service,
int serviceType, int unknown0014
int serviceType, int padding_0014
);
void IncreaseSpeed();
void DecreaseSpeed();

View file

@ -253,7 +253,7 @@ __declspec(noinline) int CSession::HasSwapEquipmentItem(std::uint32_t id) const
// OFFSET: 0x00E3DB20
// FUNCTION: fn_24194
bool CSession::ResetUnknownState() {
bool CSession::ResetCharacterSlotState() {
this->m_normalSlotCount = 1;
this->m_premiumSlotCount = 1;
this->m_billingSlotCount = 1;
@ -1453,7 +1453,7 @@ int CSession::GetItem1718QuantityOf(const ITEM_INFO& item) const {
// OFFSET: 0x00DDFDE0
// FUNCTION: fn_23447
std::uint16_t CSession::GetItem1718Unknown006CByItemId(const ITEM_INFO& item) const {
std::uint16_t CSession::GetShopItemPriceFactorByItemId(const ITEM_INFO& item) const {
for (std::list<ITEM_INFO>::const_iterator it = this->shopItems.begin(); it != this->shopItems.end(); ++it) {
if (std::atoi(it->itemId.c_str()) == std::atoi(item.itemId.c_str())) {
return it->priceFactor;
@ -1465,7 +1465,7 @@ std::uint16_t CSession::GetItem1718Unknown006CByItemId(const ITEM_INFO& item) co
// OFFSET: 0x00DDFE60
// FUNCTION: fn_23448
std::uint16_t CSession::GetItem1718Unknown006COf(const ITEM_INFO& item) const {
std::uint16_t CSession::GetShopItemPriceFactor(const ITEM_INFO& item) const {
for (auto it = this->shopItems.begin(); it != this->shopItems.end(); ++it) {
if (it->identity[1] == item.identity[1]) {
return it->priceFactor;
@ -1477,10 +1477,10 @@ std::uint16_t CSession::GetItem1718Unknown006COf(const ITEM_INFO& item) const {
// OFFSET: 0x00DDFE90
// FUNCTION: fn_23449
std::uint16_t CSession::SumItem1720Unknown006CByItemId() const {
std::uint16_t CSession::SumPurchasePriceFactorByItemId() const {
std::uint16_t total = 0;
for (std::list<ITEM_INFO>::const_iterator it = this->purchaseItems.begin(); it != this->purchaseItems.end(); ++it) {
total += it->quantity * this->GetItem1718Unknown006CByItemId(*it);
total += it->quantity * this->GetShopItemPriceFactorByItemId(*it);
}
return total;
@ -1488,10 +1488,10 @@ std::uint16_t CSession::SumItem1720Unknown006CByItemId() const {
// OFFSET: 0x00DDFF60
// FUNCTION: fn_23450
std::uint16_t CSession::SumItem1720Unknown006C() const {
std::uint16_t CSession::SumPurchasePriceFactor() const {
std::uint16_t total = 0;
for (auto it = this->purchaseItems.begin(); it != this->purchaseItems.end(); ++it) {
total += it->quantity * this->GetItem1718Unknown006COf(*it);
total += it->quantity * this->GetShopItemPriceFactor(*it);
}
return total;
@ -2166,7 +2166,7 @@ void CSession::SetMercSkillLevel(int skillId, int level) {
// OFFSET: 0x00DFFC40
// FUNCTION: fn_23630
void CSession::SetItem1768Unknown0014(int index, std::uint32_t value) {
void CSession::SetMerchantPurchaseSavedPrice(int index, std::uint32_t value) {
int position = 0;
for (ITEM_INFO& item : this->merchantPurchaseSavedItems) {
if (position == index) {
@ -6396,10 +6396,10 @@ void CSession::InitResourceNameTables() {
shieldJobNames[403] = KarnosBodyPath1().Text();
shieldJobNames[404] = KarnosBodyPath2().Text();
shieldJobNames[405] = AliteaBodyPath1().Text();
std::vector<const char*>& unknownNames = reinterpret_cast<std::vector<const char*>&>(this->additionalSpriteNames[0x08]);
unknownNames.resize(2, "f");
unknownNames[0] = "f";
unknownNames[1] = "";
std::vector<const char*>& femaleSuffixNames = reinterpret_cast<std::vector<const char*>&>(this->additionalSpriteNames[0x08]);
femaleSuffixNames.resize(2, "f");
femaleSuffixNames[0] = "f";
femaleSuffixNames[1] = "";
std::vector<const char*>& weaponNames = reinterpret_cast<std::vector<const char*>&>(this->m_weaponNamesBegin);
weaponNames.resize(105, "");
for (int index = 0; index < 105; ++index) {
@ -6930,7 +6930,7 @@ void CSession::LoadSessionTables() {
[](const char* left, const char* right) { return std::strcmp(left, right) < 0; });
session->LoadMapViewParameters();
session->InitUnknownMapTables();
session->InitSkillEffectIds();
ImportMessageTable();
g_forbiddenWords.Load("manner.txt");
session->LoadXmlTables();

View file

@ -47,7 +47,7 @@ struct SessionRecord6144 {
/* 0004 */ std::uint32_t objectives[10] = {};
/* 002C */ int completedAt = 0;
/* 0030 */ std::uint8_t rewarded = 0;
/* 0031 */ std::uint8_t unknown_0031;
/* 0031 */ std::uint8_t padding_0031;
/* 0032 */ std::int16_t year;
/* 0034 */ std::int16_t month;
/* 0036 */ std::int16_t day;
@ -85,7 +85,7 @@ struct SessionRecord6178Entry {
};
struct SessionRecord6178 {
/* 0000 */ unsigned char unknown_0000 = 0;
/* 0000 */ unsigned char padding_0000 = 0;
/* 0001 */ unsigned char completed = 0;
/* 0004 */ int id = -1;
/* 0008 */ std::string title;
@ -190,7 +190,7 @@ public:
/* 00B4 */ int m_simplifiedSkillList;
/* 00B8 */ int m_showSkillDescription;
/* 00BC */ unsigned char m_hotkeyPage;
/* 00BD */ unsigned char unknown_00BD[3];
/* 00BD */ unsigned char padding_00BD[3];
/* 00C0 */ std::string m_hotkeyDescriptions[36];
/* 0420 */ std::uint32_t hotkeySkillLevels[36];
/* 04B0 */ NormalItemSlot m_shortcutSlots[36];
@ -199,7 +199,7 @@ public:
/* 06AC */ NormalItemSlot m_normalItemSlots[9];
/* 06EB */ NormalItemSlot quickSlot;
/* 06F2 */ NormalItemSlot alternateQuickSlot;
/* 06F9 */ unsigned char unknown_06F9[0x03];
/* 06F9 */ unsigned char padding_06F9[0x03];
/* 06FC */ int mainShortcutRow;
/* 0700 */ std::map<int, int> skillFollowEffects;
/* 0708 */ std::map<int, int> skillEffectIds;
@ -210,7 +210,7 @@ public:
/* 073C */ std::map<int, SubChatWndInfo> m_noSubChatWnds;
/* 0744 */ std::map<int, SubChatWndInfo> m_subChatWnds;
/* 074C */ bool m_canDragWnd;
/* 074D */ unsigned char unknown_074D[0x03];
/* 074D */ unsigned char padding_074D[0x03];
/* 0750 */ std::uint32_t m_prohibitionTarget;
/* 0754 */ std::vector<ProhibitionLogEntry> m_prohibitionLog;
/* 0760 */ std::string m_accountName;
@ -227,7 +227,7 @@ public:
/* 07A4 */ std::uint32_t m_timeAttackCountdown;
/* 07A8 */ std::uint32_t m_timeAttackStart;
/* 07AC */ int m_timeAttackVisible;
/* 07B0 */ unsigned char unknown_07B0[4];
/* 07B0 */ unsigned char padding_07B0[4];
};
};
/* 07B4 */ unsigned char m_playerNameKey[0x40];
@ -243,7 +243,7 @@ public:
/* 0EF4 */ unsigned char accessoryAppearance[0x0C];
/* 0F00 */ int m_robe;
/* 0F04 */ bool m_newRobeDrawOnTop;
/* 0F05 */ unsigned char unknown_0F05[0x03];
/* 0F05 */ unsigned char padding_0F05[0x03];
/* 0F08 */ int m_bodyCostume;
/* 0F0C */ unsigned char statusLevelEffects[0x08];
/* 0F14 */ std::uint32_t m_jobFlags;
@ -283,7 +283,7 @@ public:
/* 0FA8 */ std::vector<const char*> m_jobNameTable;
/* 0FB4 */ std::map<unsigned, const char*> m_jobNameTableWoman;
/* 0FBC */ std::map<unsigned, const char*> m_jobNameTableMan;
/* 0FC4 */ std::map<unsigned, const char*> unknown_0FC4;
/* 0FC4 */ std::map<unsigned, const char*> padding_0FC4;
/* 0FCC */ std::vector<const char*> m_sexLabels;
/* 0FD8 */ std::vector<const char*> m_jobKeyNames;
/* 0FE4 */ std::list<std::uint32_t> m_pingSamples;
@ -350,7 +350,7 @@ public:
/* 1784 */ std::list<ITEM_INFO> inventoryCategories[11];
/* 17DC */ std::list<MessengerMember> m_partyMembers;
/* 17E4 */ std::list<MessengerMember> m_friends;
/* 17EC */ unsigned char unknown_17EC[0x04];
/* 17EC */ unsigned char padding_17EC[0x04];
/* 17F0 */ ITEM_INFO equippedItems[10];
/* 21A0 */ ITEM_INFO alternateEquippedItems[10];
/* 2B50 */ ITEM_INFO costumeItems[10];
@ -366,8 +366,8 @@ public:
/* 5248 */ std::vector<char*> m_indoorRswNames;
/* 5254 */ std::map<int, float> m_npcLocationRadius;
/* 525C */ unsigned char weaponSoundTables[0x24];
/* 5280 */ std::list<int> unknown_5280;
/* 5288 */ unsigned char unknown_5288[0x0C];
/* 5280 */ std::list<int> padding_5280;
/* 5288 */ unsigned char padding_5288[0x0C];
/* 5294 */ const char* const* m_bodyJobNames;
/* 5298 */ unsigned char m_bodyJobNamesEndAndCapacity[0x08];
/* 52A0 */ const char* const* m_sexNames;
@ -439,7 +439,7 @@ public:
/* 55D0 */ int homunMaxSp;
/* 55D4 */ int homunFriendly;
/* 55D8 */ int homunAccessory;
/* 55DC */ unsigned char unknown_55DC[4];
/* 55DC */ unsigned char padding_55DC[4];
/* 55E0 */ std::int64_t m_homunExp;
/* 55E8 */ std::int64_t m_homunMaxExp;
/* 55F0 */ int homunHunger;
@ -479,13 +479,13 @@ public:
/* 56B8 */ unsigned char autoReplyState[0x1C];
/* 56D4 */ int m_storePasswordMode;
/* 56D8 */ bool m_passwordInputAlternate;
/* 56D9 */ unsigned char unknown_56D9[0x7];
/* 56D9 */ unsigned char padding_56D9[0x7];
/* 56E0 */ int m_passwordWndMode;
/* 56E4 */ std::uint32_t m_loginAccountId;
/* 56E8 */ std::int32_t m_passwordWndAccountId;
/* 56EC */ bool m_launchAccountEnabled;
/* 56ED */ char m_loginErrorText[500];
/* 58E1 */ unsigned char unknown_58E1[0x19];
/* 58E1 */ unsigned char padding_58E1[0x19];
/* 58FA */ char clientVersion[0x18];
/* 5912 */ unsigned char characterRenameEnabled;
/* 5913 */ unsigned char characterRenameData[0x25];
@ -511,9 +511,9 @@ public:
union {
/* 59DC */ unsigned char mouseAndChannelOptions[0x19C];
struct {
/* 59DC */ unsigned char unknown_59DC_0000[0x194];
/* 59DC */ unsigned char padding_59DC[0x194];
/* 5B70 */ bool m_lockMouse;
/* 5B71 */ unsigned char unknown_5B71[3];
/* 5B71 */ unsigned char padding_5B71[3];
/* 5B74 */ int m_channelCopId;
};
};
@ -574,19 +574,19 @@ public:
/* 61B3 */ bool m_itemDefaultSort;
/* 61B4 */ bool m_itemAscendingOrder;
/* 61B5 */ bool m_itemDescendingOrder;
/* 61B6 */ unsigned char unknown_61B6[2];
/* 61B6 */ unsigned char padding_61B6[2];
};
};
/* 61B8 */ ITEM_INFO swapCostumeItems[10];
/* 6B68 */ ITEM_INFO swapEquippedItems[10];
/* 7518 */ ITEM_INFO unknown_7518[10];
/* 7518 */ ITEM_INFO padding_7518[10];
/* 7EC8 */ std::uint32_t swapArrowIndex;
/* 7ECC */ unsigned char swapEquipmentFlag[0x04];
/* 7ED0 */ int minimumNameLength;
/* 7ED4 */ std::uint32_t nameValidationTick;
/* 7ED8 */ int m_swapEquipmentMode = 0;
/* 7EDC */ bool m_showMenuIcon;
/* 7EDD */ unsigned char unknown_7EDD[3];
/* 7EDD */ unsigned char padding_7EDD[3];
/* 7EE0 */ std::map<int, RobeAlpha> m_robeAlpha;
/* 7EE8 */ unsigned char maxBaseLevel[4];
/* 7EEC */ int m_maxLevel;
@ -598,7 +598,7 @@ public:
union {
/* 7F7D */ unsigned char homunculusFeedOptions[0x0F];
struct {
/* 7F7D */ unsigned char unknown_7F7D_0000[0x0B];
/* 7F7D */ unsigned char padding_7F7D[0x0B];
/* 7F88 */ bool m_loginModeFlag;
};
};
@ -773,7 +773,7 @@ public:
void FormatMonsterSpeech(char* text, char* output, std::uint32_t aid, int feminine);
bool UpdateHomunSkill(const CSkillInfo& value, unsigned char notify);
bool UpdateMercSkill(const CSkillInfo& value, unsigned char notify);
void AddUnknownId(int id);
void AddAchievementId(int id);
EquipSlots GetEquipSlots(int location);
bool EquipInventoryItem(const ITEM_INFO& item, const char* name);
bool UnequipItem(int location, std::uint32_t identity);
@ -792,7 +792,7 @@ public:
void ClearShortcutSlots();
void ClearSecondaryShortcutSlots();
void ClearHotkeySkillLevels();
void EraseUnknownKey(std::int64_t key);
void EraseSummonHp(std::int64_t key);
std::int64_t FindSummonHp(std::int64_t key) const;
std::int64_t FindSummonMaxHp(std::int64_t key) const;
SessionRecord6144 FindAchievementRecord(int key) const;
@ -886,7 +886,7 @@ public:
void NotifyMercSkillWindows();
int GetPetActionNumber(int hungerLevel, int friendlyLevel, int action);
void InitPetActionTable();
void InitUnknownMapTables();
void InitSkillEffectIds();
int GetPetFriendlyState(int friendly);
void GetPetFriendlyStateString(int friendly, char* buffer);
int GetPetHungryState(int hunger);
@ -899,7 +899,7 @@ public:
bool IsPlayerPerformerJob(int job) const;
bool IsSpecialMonsterJob(int job) const;
bool IsRestrictedCharacterSlot(int value) const;
bool ResetUnknownState();
bool ResetCharacterSlotState();
__declspec(noinline) bool IsSecondJob(int job);
void UpdateBodyStyle(int job, int style, int renderJob);
std::string GetBodyJobName(int job);
@ -918,7 +918,7 @@ public:
void LoadExternalSettings();
void ReloadLanguageTables();
bool AddInventoryItem(const ITEM_INFO& item, unsigned char refresh);
void AddShopItem(const RawItemBasic& item, int quantity, std::uint16_t unknown_006C);
void AddShopItem(const RawItemBasic& item, int quantity, std::uint16_t padding_006C);
void AddShopItem(const RawItemBasic& item, int mode);
bool AddMerchantPurchaseSavedItem(const ITEM_INFO& item, unsigned char alternate, unsigned char refresh);
bool AddMerchantShopItem(const ITEM_INFO& item);
@ -965,7 +965,7 @@ public:
void ClearCartItems();
void CopyItems1740To1750();
void CopyItems1760To1770();
std::pair<bool, ITEM_INFO> FindMerchantMyShopItem(const ITEM_INFO& item, unsigned char unknown);
std::pair<bool, ITEM_INFO> FindMerchantMyShopItem(const ITEM_INFO& item, unsigned char wholeItem);
void ClearMiniPartyRecords();
void ResetStatBonuses();
void ResetHotkeyDescriptions();
@ -1132,10 +1132,10 @@ public:
ITEM_INFO GetAlternateEquippedItemAt(int index) const;
int GetItem1718QuantityByItemId(const ITEM_INFO& item) const;
int GetItem1718QuantityOf(const ITEM_INFO& item) const;
std::uint16_t GetItem1718Unknown006CByItemId(const ITEM_INFO& item) const;
std::uint16_t GetItem1718Unknown006COf(const ITEM_INFO& item) const;
std::uint16_t SumItem1720Unknown006CByItemId() const;
std::uint16_t SumItem1720Unknown006C() const;
std::uint16_t GetShopItemPriceFactorByItemId(const ITEM_INFO& item) const;
std::uint16_t GetShopItemPriceFactor(const ITEM_INFO& item) const;
std::uint16_t SumPurchasePriceFactorByItemId() const;
std::uint16_t SumPurchasePriceFactor() const;
ITEM_INFO FindItem1720ByItemId(const char* itemId) const;
ITEM_INFO GetItem1720At(int index) const;
int GetItem1720QuantityByItemId(const char* itemId) const;
@ -1213,7 +1213,7 @@ public:
void SetHomunSkillLevel(int skillId, int level);
void UpdateInventoryItem(const ITEM_INFO& item, unsigned char refresh);
void SetMercSkillLevel(int skillId, int level);
void SetItem1768Unknown0014(int index, std::uint32_t value);
void SetMerchantPurchaseSavedPrice(int index, std::uint32_t value);
void AddMiniPartyRecord(int id, std::uint32_t value);
void SetExchangeMoney(int value);
void SetOtherExchangeMoney(int value);

View file

@ -356,7 +356,7 @@ void CSession::ResolvePendingActorName(std::uint32_t id, const char* name) {
// OFFSET: 0x00E1A5E0
// FUNCTION: fn_23849
void CSession::InitUnknownMapTables() {
void CSession::InitSkillEffectIds() {
int key;
this->skillEffectIds.clear();

View file

@ -36,7 +36,7 @@ void OnStoveAllProductsFetched(Stove::PCSDK::CallbackResult callbackResult, cons
void OnStoveInitialized(Stove::PCSDK::CallbackResult callbackResult);
void OnStoveShutdown(Stove::PCSDK::CallbackResult callbackResult, Stove::PCSDK::Base::StovePCShutdown shutdown);
void OnStovePurchaseStarted(Stove::PCSDK::CallbackResult callbackResult, Stove::PCSDK::IAP::StovePCPurchaseResult purchaseResult);
void OnStovePurchaseConfirmed(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int unknown1, unsigned int count, int unknown2, int unknown3);
void OnStovePurchaseConfirmed(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int productCount, unsigned int count, int remainingCount, int resultCode);
// STRING: st_01259
const wchar_t g_stoveCategoryIdA[] = L"44C71118750747D";
@ -153,7 +153,7 @@ struct CategoryProductsCallback {
};
struct ConfirmPurchaseCallback {
void operator()(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int unknown1, unsigned int count, int unknown2, int unknown3) const;
void operator()(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int productCount, unsigned int count, int remainingCount, int resultCode) const;
};
// OFFSET: 0x0063A780
@ -188,8 +188,8 @@ void OnStovePurchaseStarted(Stove::PCSDK::CallbackResult callbackResult, Stove::
// OFFSET: 0x0063A9D0
// FUNCTION: fn_04776
void OnStovePurchaseConfirmed(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int unknown1, unsigned int count, int unknown2, int unknown3) {
ConfirmPurchaseCallback()(callbackResult, purchased, unknown1, count, unknown2, unknown3);
void OnStovePurchaseConfirmed(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int productCount, unsigned int count, int remainingCount, int resultCode) {
ConfirmPurchaseCallback()(callbackResult, purchased, productCount, count, remainingCount, resultCode);
}
// OFFSET: 0x0063AA50
@ -474,8 +474,8 @@ EncryptedName<129, 0x2D3B15774149D5DDULL>& PurchaseCheckingMessage::operator()()
// OFFSET: 0x0063D5D0
// FUNCTION: fn_04791
void ConfirmPurchaseCallback::operator()(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int unknown1, unsigned int count, int unknown2,
int unknown3) const {
void ConfirmPurchaseCallback::operator()(Stove::PCSDK::CallbackResult callbackResult, bool purchased, int productCount, unsigned int count, int remainingCount,
int resultCode) const {
g_stoveWaitingCallback = false;
if (callbackResult.GetResult().IsSuccessful()) {
if (count != 0 && purchased == true) {

View file

@ -10,7 +10,7 @@ namespace Stove::PCSDK {
bool IsSuccessful() const;
/* 0000 */ std::uint8_t unknown_0000[12];
/* 0000 */ std::uint8_t padding_0000[12];
};
struct __declspec(dllimport) CallbackResult {
@ -19,7 +19,7 @@ namespace Stove::PCSDK {
Result GetResult() const;
/* 0000 */ std::uint8_t unknown_0000[28];
/* 0000 */ std::uint8_t padding_0000[28];
};
namespace Base {
@ -36,7 +36,7 @@ namespace Stove::PCSDK {
StovePCShutdown(const StovePCShutdown& other);
~StovePCShutdown();
/* 0000 */ void* unknown_0000[3];
/* 0000 */ void* padding_0000[3];
};
struct __declspec(dllimport) StovePCInitializeParam {
@ -45,7 +45,7 @@ namespace Stove::PCSDK {
void SetEnvironment(const wchar_t* environment);
void SetApplicationKey(const wchar_t* applicationKey);
/* 0000 */ std::uint8_t unknown_0000[36];
/* 0000 */ std::uint8_t padding_0000[36];
};
struct __declspec(dllimport) StovePCUser {
@ -55,7 +55,7 @@ namespace Stove::PCSDK {
std::uint64_t GetMemberNumber() const;
std::uint64_t GetGameUserId() const;
/* 0000 */ void* unknown_0000[5];
/* 0000 */ void* padding_0000[5];
};
}
@ -70,7 +70,7 @@ namespace Stove::PCSDK {
StovePCPaymentOption(const StovePCPaymentOption& other);
void SetOperation(StovePCPaymentOperation operation);
/* 0000 */ void* unknown_0000[6];
/* 0000 */ void* padding_0000[6];
};
struct __declspec(dllimport) StovePCTermsOption : StovePCPaymentOption {
@ -84,7 +84,7 @@ namespace Stove::PCSDK {
void SetPageNumber(int pageNumber);
void SetPageSize(int pageSize);
/* 0000 */ void* unknown_0000[3];
/* 0000 */ void* padding_0000[3];
};
struct StovePCPurchaseOption : StovePCPaymentOption {
@ -103,7 +103,7 @@ namespace Stove::PCSDK {
std::int64_t GetProductId() const;
void SetProductId(std::int64_t productId);
/* 0000 */ void* unknown_0000[5];
/* 0000 */ void* padding_0000[5];
};
struct __declspec(dllimport) StovePCStartPurchaseParam {
@ -113,7 +113,7 @@ namespace Stove::PCSDK {
void SetOrderProduct(int index, const StovePCOrderProduct* orderProduct);
void SetPurchaseOption(StovePCPurchaseOption option);
/* 0000 */ void* unknown_0000[10];
/* 0000 */ void* padding_0000[10];
};
struct __declspec(dllimport) StovePCPurchasedProduct {
@ -132,14 +132,14 @@ namespace Stove::PCSDK {
std::int64_t GetSaleBeginDate() const;
std::int64_t GetSaleEndDate() const;
/* 0000 */ std::uint8_t unknown_0000[156];
/* 0000 */ std::uint8_t padding_0000[156];
};
struct __declspec(dllimport) StovePCPurchaseResult {
StovePCPurchaseResult(const StovePCPurchaseResult& other);
~StovePCPurchaseResult();
/* 0000 */ std::uint8_t unknown_0000[48];
/* 0000 */ std::uint8_t padding_0000[48];
};
}
}

View file

@ -277,13 +277,13 @@ bool CAchievementMgr::LoadAchievementInfo() {
// OFFSET: 0x0066ED90
// FUNCTION: fn_05323
std::pair<bool, std::string> CAchievementMgr::InsertAchieveInfo(int id, std::string title, std::string unknown0018, std::string description, int points) {
std::pair<bool, std::string> CAchievementMgr::InsertAchieveInfo(int id, std::string title, std::string summaryText, std::string description, int points) {
if (this->achievements.find(id) != this->achievements.end()) {
const std::string message = FormatOwnedString("duplicate achievement info [%d]", id);
return std::make_pair(false, message);
}
if (this->achievements.insert(std::pair<int, AchievementInfo>(id, AchievementInfo(title, unknown0018, description, points))).second) {
if (this->achievements.insert(std::pair<int, AchievementInfo>(id, AchievementInfo(title, summaryText, description, points))).second) {
return std::make_pair(true, "good");
}
@ -293,7 +293,7 @@ std::pair<bool, std::string> CAchievementMgr::InsertAchieveInfo(int id, std::str
// OFFSET: 0x0066F170
// FUNCTION: fn_05324
std::pair<bool, std::string> CAchievementMgr::InsertAchieveResource(int id, std::string text, int unknown0018, int unknown001C) {
std::pair<bool, std::string> CAchievementMgr::InsertAchieveResource(int id, std::string text, int targetCount, int conditionId) {
const auto found = this->achievements.find(id);
if (found == this->achievements.end()) {
const std::string message = FormatOwnedString("achievement info [%d] cannot be find", id);
@ -303,7 +303,7 @@ std::pair<bool, std::string> CAchievementMgr::InsertAchieveResource(int id, std:
std::vector<AchievementReward>& rewards = found->second.rewards;
const auto end = rewards.end();
if (std::find_if(rewards.begin(), end, [text](const AchievementReward& reward) { return text.compare(reward.text) == 0; }) == end) {
const AchievementReward reward(text, unknown0018, unknown001C);
const AchievementReward reward(text, targetCount, conditionId);
rewards.push_back(reward);
return std::make_pair(true, "good");
}
@ -415,10 +415,10 @@ int CAchievementMgr::L_InsertAchieveInfo(lua_State* state) {
} else {
const int id = static_cast<int>(lua_tonumber(state, -5));
const std::string title = lua_tostring(state, -4);
const std::string unknown0018 = lua_tostring(state, -3);
const std::string summaryText = lua_tostring(state, -3);
const std::string description = lua_tostring(state, -2);
const std::pair<bool, std::string> result =
g_achievementMgr->InsertAchieveInfo(id, title, unknown0018, description, static_cast<int>(lua_tonumber(state, -1)));
g_achievementMgr->InsertAchieveInfo(id, title, summaryText, description, static_cast<int>(lua_tonumber(state, -1)));
if (!result.first) {
lua_pushboolean(state, 0);
lua_pushstring(state, FormatString("InsertAchieveInfo : %s", result.second.c_str()));
@ -448,9 +448,9 @@ int CAchievementMgr::L_InsertAchieveResource(lua_State* state) {
} else {
const int id = static_cast<int>(lua_tonumber(state, -4));
const std::string text = lua_tostring(state, -3);
const int unknown0018 = static_cast<int>(lua_tonumber(state, -2));
const int targetCount = static_cast<int>(lua_tonumber(state, -2));
const std::pair<bool, std::string> result =
g_achievementMgr->InsertAchieveResource(id, text, unknown0018, static_cast<int>(lua_tonumber(state, -1)));
g_achievementMgr->InsertAchieveResource(id, text, targetCount, static_cast<int>(lua_tonumber(state, -1)));
if (!result.first) {
lua_pushboolean(state, 0);
lua_pushstring(state, FormatString("InsertAchieveResource : %s", result.second.c_str()));

View file

@ -10,10 +10,10 @@ struct lua_State;
struct AchievementReward {
// INLINED
AchievementReward(std::string text, int unknown0018, int unknown001C) {
AchievementReward(std::string text, int targetCount, int conditionId) {
this->text = text;
this->targetCount = unknown0018;
this->conditionId = unknown001C;
this->targetCount = targetCount;
this->conditionId = conditionId;
}
/* 0000 */ std::string text;
@ -26,8 +26,8 @@ struct AchievementInfo {
AchievementInfo() {
}
// INLINED
AchievementInfo(std::string title, std::string unknown0018, std::string description, int points)
: title(title), summaryText(unknown0018), description(description), points(points) {
AchievementInfo(std::string title, std::string summaryText, std::string description, int points)
: title(title), summaryText(summaryText), description(description), points(points) {
}
/* 0000 */ std::string title;
@ -73,8 +73,8 @@ public:
int GetAchievementCount(int group, int index);
int GetCompletedCount(int group, int index);
bool FindTab(int id, int& group, int& index);
std::pair<bool, std::string> InsertAchieveInfo(int id, std::string title, std::string unknown0018, std::string description, int points);
std::pair<bool, std::string> InsertAchieveResource(int id, std::string text, int unknown0018, int unknown001C);
std::pair<bool, std::string> InsertAchieveInfo(int id, std::string title, std::string padding_0018, std::string description, int points);
std::pair<bool, std::string> InsertAchieveResource(int id, std::string text, int padding_0018, int padding_001C);
std::pair<bool, std::string> InsertAchieveRewardBuff(int id, int value);
std::pair<bool, std::string> InsertAchieveRewardItem(int id, int value);
std::pair<bool, std::string> InsertAchieveRewardTitle(int id, int value);

View file

@ -49,7 +49,7 @@ CCharacterRender::CCharacterRender(int width, int renderHeight)
: headJob(0), lowerHeadgear(0), upperHeadgear(0), middleHeadgear(0), lowerHeadgearLocation(0),
upperHeadgearLocation(0), middleHeadgearLocation(0), madogearType(0), riding(0), bodyCostume(0), viewportOffsetX(0), viewportOffsetY(80.0f), bodyBlend(-1),
bodyCellX(-1), bodyCellY(-1), viewportWidth(width), viewportHeight(renderHeight), cameraDistance(400.0f), cameraPitch(-45.0f),
cameraYaw(0.0f), unknown_007C(0.0f), unknown_0080(0.0f), unknown_0084(0.0f), cameraUpX(0.0f), cameraUpY(1.0f), cameraUpZ(0),
cameraYaw(0.0f), padding_007C(0.0f), padding_0080(0.0f), padding_0084(0.0f), cameraUpX(0.0f), cameraUpY(1.0f), cameraUpZ(0),
screenX(0), screenY(0), robe(0), isHelmRobe(0) {
this->positionX = 0;
this->positionY = 0;

View file

@ -66,9 +66,9 @@ public:
/* 0070 */ float cameraDistance;
/* 0074 */ float cameraPitch;
/* 0078 */ float cameraYaw;
/* 007C */ float unknown_007C;
/* 0080 */ float unknown_0080;
/* 0084 */ float unknown_0084;
/* 007C */ float padding_007C;
/* 0080 */ float padding_0080;
/* 0084 */ float padding_0084;
/* 0088 */ float cameraUpX;
/* 008C */ float cameraUpY;
/* 0090 */ int cameraUpZ;

View file

@ -27,7 +27,7 @@ public:
void Render(int argument) override;
/* 0138 */ float spriteOffset;
/* 013C */ std::uint32_t unknown_013C;
/* 013C */ std::uint32_t padding_013C;
};
class CMasterChaser : public CRenderObject {
@ -38,7 +38,7 @@ public:
void ClearChaseState();
/* 0138 */ std::uint32_t chaseState;
/* 013C */ std::uint32_t unknown_013C;
/* 013C */ std::uint32_t padding_013C;
};
class CNumEffect : public CRenderObject {

View file

@ -21,7 +21,7 @@ enum {
};
struct ActorHitInfo {
/* 0000 */ int unknown_0000;
/* 0000 */ int padding_0000;
/* 0004 */ int damage;
/* 0008 */ int extraDamage;
/* 000C */ int type;
@ -83,11 +83,11 @@ public:
/* 018C */ int actorTitleWindow;
/* 0190 */ unsigned char hitWaveName[0x80];
/* 0210 */ std::uint16_t characterLevel;
/* 0212 */ unsigned char unknown_0212[0x02];
/* 0212 */ unsigned char padding_0212[0x02];
/* 0214 */ vector3d accel;
/* 0220 */ MovementRouteInterpolation route;
/* 0238 */ unsigned char isNeverAnimation;
/* 0239 */ unsigned char unknown_0239[0x03];
/* 0239 */ unsigned char padding_0239[0x03];
/* 023C */ int pathStartCell;
/* 0240 */ float dist;
/* 0244 */ std::uint32_t lastProcessStateTime;
@ -114,13 +114,13 @@ public:
/* 02B0 */ int willBeDead;
/* 02B4 */ int hasLevelAura;
/* 02B8 */ unsigned char levelAuraType;
/* 02B9 */ unsigned char unknown_02B9[0x03];
/* 02B9 */ unsigned char padding_02B9[0x03];
/* 02BC */ int bodyState;
/* 02C0 */ std::uint32_t stateFlags;
/* 02C4 */ int effectState;
/* 02C8 */ int healthState;
/* 02CC */ unsigned char isRiding;
/* 02CD */ unsigned char unknown_02CD[0x03];
/* 02CD */ unsigned char padding_02CD[0x03];
/* 02D0 */ float damageDestX;
/* 02D4 */ float damageDestZ;
/* 02D8 */ int effectLaunchCnt;
@ -136,12 +136,12 @@ public:
/* 0300 */ int hpGaugeWindow;
/* 0304 */ unsigned char hpGaugeFlags;
/* 0305 */ unsigned char hasSp;
/* 0306 */ unsigned char unknown_0306[2];
/* 0306 */ unsigned char padding_0306[2];
/* 0308 */ int spGaugeValue;
/* 030C */ int homunAI;
/* 0310 */ int merAI;
/* 0314 */ unsigned char objectType;
/* 0315 */ unsigned char unknown_0315[3];
/* 0315 */ unsigned char padding_0315[3];
/* 0318 */ float homunMsg[6];
/* 0330 */ float homunResMsg[6];
/* 0348 */ float merMsg[6];
@ -158,13 +158,13 @@ public:
/* 03D8 */ int secondFollowerEffect;
/* 03DC */ int mountedState;
union { /* 03E0 */ std::uint16_t actorFlags; struct { unsigned char storedActorEntry; /* 03E1 */ bool modelReady; }; };
/* 03E2 */ unsigned char unknown_03E2[0x06];
/* 03E2 */ unsigned char padding_03E2[0x06];
/* 03E8 */ std::int64_t maximumValue;
/* 03F0 */ vector3d positionDelta;
/* 03FC */ std::set<int> exclusiveEffects;
/* 0404 */ int shapeShift;
/* 0408 */ int savedShapeShift;
/* 040C */ unsigned char unknown_040C[0x04];
/* 040C */ unsigned char padding_040C[0x04];
int Get8Dir(float angle) override;
void SetRenderInfo(const float* bounds, float x, float y) override;

View file

@ -3375,7 +3375,7 @@ void CGameActor::SendMsg(CGameObject* sender, int message, int a, int b, int c,
this->LaunchEffect(0x220, vector3d{0.0f, 0.0f, 0.0f}, 0.0f);
}
break;
case EFST_UNKNOWN_NAME:
case EFST_SHOW_HP:
this->hasHp = (static_cast<std::int64_t>(e) << 32 | static_cast<std::uint32_t>(d)) != 0;
break;
case EFST_HAT_EFFECT:

View file

@ -17,7 +17,7 @@ public:
/* 0158 */ int lifetime;
/* 015C */ int screenX;
/* 0160 */ int screenY;
/* 0164 */ int unknown_0164;
/* 0164 */ int padding_0164;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -45,10 +45,10 @@ public:
/* 050C */ granny_system_clock clock;
/* 051C */ granny_system_clock lastClock;
/* 052C */ float motionProgress;
/* 0530 */ unsigned char unknown_0530[0x08];
/* 0530 */ unsigned char padding_0530[0x08];
/* 0538 */ float angle;
/* 053C */ unsigned char alpha;
/* 053D */ unsigned char unknown_053D[0x03];
/* 053D */ unsigned char padding_053D[0x03];
/* 0540 */ unsigned brightness;
/* 0544 */ int motion;
/* 0548 */ unsigned char currentFrame[0x04];
@ -57,7 +57,7 @@ public:
/* 0654 */ int cellTexture;
/* 0658 */ granny_control* controls[20];
/* 06A8 */ unsigned char initializeFacing;
/* 06A9 */ unsigned char unknown_06A9[0x03];
/* 06A9 */ unsigned char padding_06A9[0x03];
/* 06AC */ CTexture* meshTextures[30];
/* 0724 */ std::uint16_t* meshIndices[30];
/* 079C */ int meshTriangleCounts[30];

View file

@ -14,7 +14,7 @@ public:
void SendMsg(CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m) override;
/* 0138 */ int m_remainingFrames;
/* 013C */ int unknown_013C;
/* 013C */ int padding_013C;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -44,7 +44,7 @@ public:
/* 0438 */ int attachedEffectId;
/* 0438 */ std::int16_t minimapMarkerCell[2];
};
/* 043C */ int unknown_043C;
/* 043C */ int padding_043C;
};
class CCharacterNpc : public CNpc {
@ -72,9 +72,9 @@ public:
/* 0440 */ float hallucinationOffset;
/* 0444 */ int fadeStep;
/* 0448 */ int unknown_0448;
/* 044C */ int unknown_044C;
/* 0450 */ int unknown_0450;
/* 0448 */ int padding_0448;
/* 044C */ int padding_044C;
/* 0450 */ int padding_0450;
/* 0454 */ int processCount;
};
@ -89,7 +89,7 @@ public:
void Render(int argument) override;
/* 0440 */ std::uint32_t processCount;
/* 0444 */ int unknown_0444;
/* 0444 */ int padding_0444;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -103,11 +103,11 @@ public:
void DrawBody(int argument, int layer, const float* position, float x, float y, float distanceScale, float scale, float depth);
void RenderOverlaySprite(const float* matrix, int);
void UpdateGaugeWindow();
void DrawLayers(const float* matrix, int unknown0030, char blendVariant);
void DrawLayers(const float* matrix, int padding_0030, char blendVariant);
float* GetExtent(float* extent) const override;
/* 0410 */ unsigned char unknown_0410[4];
/* 0410 */ unsigned char padding_0410[4];
/* 0414 */ CMsgEffect* msgEffect;
/* 0418 */ std::string imfName;
/* 0430 */ int honor;
@ -134,7 +134,7 @@ public:
/* 04A0 */ int blend;
/* 04A4 */ int layerCellX;
/* 04A8 */ int layerCellY;
/* 04AC */ std::map<int, std::pair<int, int>> unknown_04AC;
/* 04AC */ std::map<int, std::pair<int, int>> padding_04AC;
/* 04B4 */ std::vector<CRes*> equipSprites;
/* 04C0 */ std::vector<CRes*> equipActions;
/* 04CC */ int pkState;
@ -142,10 +142,10 @@ public:
/* 04D4 */ int appearanceJob;
/* 04D8 */ unsigned char alternateDoramAppearance[1];
/* 04D9 */ bool isHelmRobe;
/* 04DA */ unsigned char unknown_04DA[2];
/* 04DA */ unsigned char padding_04DA[2];
/* 04DC */ int madogearType;
/* 04E0 */ bool arrowEffectSuppressed;
/* 04E1 */ unsigned char unknown_04E1[0x03];
/* 04E1 */ unsigned char padding_04E1[0x03];
/* 04E4 */ float extentLeft;
/* 04E8 */ float extentTop;
/* 04EC */ float extentRight;
@ -181,7 +181,7 @@ public:
void Render(int argument) override;
/* 0510 */ CPc* sourcePc;
/* 0514 */ int unknown_0514;
/* 0514 */ int padding_0514;
};
class CHalluPC2 : public CPc {
@ -195,7 +195,7 @@ public:
void Render(int argument) override;
/* 0510 */ CPc* sourcePc;
/* 0514 */ int unknown_0514;
/* 0514 */ int padding_0514;
};
class CPlayer : public CPc {
@ -294,14 +294,14 @@ public:
/* 0430 */ int headDir;
/* 0434 */ int head;
/* 0438 */ int headPalette;
/* 043C */ unsigned char unknown_043C[4];
/* 043C */ unsigned char padding_043C[4];
/* 0440 */ int weapon;
/* 0444 */ int secondaryWeapon;
/* 0448 */ int accessory;
/* 044C */ int accessory2;
/* 0450 */ int accessory3;
/* 0454 */ int shield;
/* 0458 */ unsigned char unknown_0458[8];
/* 0458 */ unsigned char padding_0458[8];
/* 0460 */ std::string headPaletteName;
/* 0478 */ UIWindow* gaugeWindow;
/* 047C */ int pkRank;
@ -320,26 +320,26 @@ public:
/* 0F2C */ int baseAnimation;
/* 0F30 */ float angle;
/* 0F34 */ unsigned char alpha;
/* 0F35 */ unsigned char unknown_0F35[0x03];
/* 0F35 */ unsigned char padding_0F35[0x03];
/* 0F38 */ unsigned brightness;
/* 0F3C */ int motion;
/* 0F40 */ unsigned char currentFrame[4];
/* 0F44 */ char modelName[0x104];
/* 1048 */ unsigned char unknown_1048[8];
/* 1048 */ unsigned char padding_1048[8];
/* 1050 */ granny_control* controls[20];
/* 10A0 */ unsigned char snapFacing;
/* 10A1 */ unsigned char unknown_10A1[3];
/* 10A1 */ unsigned char padding_10A1[3];
/* 10A4 */ int renderFrame;
/* 10A8 */ CTexture* meshTextures[10][30];
/* 1558 */ std::uint16_t* meshIndices[10][30];
/* 1A08 */ int meshTriangleCounts[10][30];
/* 1EB8 */ matrix meshTransforms[30];
/* 2458 */ unsigned char unknown_2458[0xF8];
/* 2458 */ unsigned char padding_2458[0xF8];
/* 2550 */ granny_world_pose* worldPose;
/* 2554 */ CTexture* shadowTexture;
/* 2558 */ std::vector<vector3d> attachmentPositions;
/* 2564 */ int attachLayer;
/* 2568 */ int unknown_2568;
/* 2568 */ int padding_2568;
/* 256C */ matrix attachTransform;
};
@ -392,6 +392,6 @@ static_assert(offsetof(CPc, arrowEffectSuppressed) == 0x4E0);
#endif
extern unsigned char g_statusRefreshSuppressed;
extern bool g_unknown173AD3F;
extern bool g_moveRequestPending;
#endif

View file

@ -889,7 +889,7 @@ void CPc::RenderBodyOutline(int layer, const float* position, float x, float y,
this->RaiseTransformPriority((box[3] - box[1]) / 4);
quad.image = image;
quad.color = color;
if (this->render.unknown_0130[0] == 1) {
if (this->render.translucentOther[0] == 1) {
quad.color = color & 0xFFFFFF | 0x46000000;
}
@ -2046,7 +2046,7 @@ void CPc::DrawBody(int, int layer, const float* position, float x, float y, floa
}
this->RaiseTransformPriority((box[3] - box[1]) / 4);
if (this->render.unknown_0130[0] == 1) {
if (this->render.translucentOther[0] == 1) {
quad.color = quad.color & 0xFFFFFF | 0x46000000;
}
@ -2302,9 +2302,9 @@ void CPc::Render(int argument) {
}
}
this->render.unknown_0130[0] = 0;
this->render.translucentOther[0] = 0;
if (g_serviceOptions.Get(0x109) && this->render.accountId != g_session.m_aid) {
this->render.unknown_0130[0] = 1;
this->render.translucentOther[0] = 1;
}
const float* matrix = reinterpret_cast<const float*>(argument);
@ -2354,9 +2354,9 @@ void CPc::Render(int argument) {
// OFFSET: 0x00DAD8C0
// FUNCTION: fn_22599
void CPc::DrawLayers(const float* matrix, int unknown0030, char blendVariant) {
void CPc::DrawLayers(const float* matrix, int blendMode, char blendVariant) {
SpriteLayerRenderer renderer(this);
renderer.Render(matrix, unknown0030, blendVariant);
renderer.Render(matrix, blendMode, blendVariant);
}
// OFFSET: 0x00DABF50
@ -3831,7 +3831,7 @@ void CPlayer::ReapplySkillEffects() {
}
// GLOBAL: gl_25218
bool g_unknown173AD3F;
bool g_moveRequestPending;
struct PlayerSkillRequest {
int skill;
@ -3913,7 +3913,7 @@ void CPlayer::SendMsg(
}
break;
case AM_REQ_MOVE_PRIMITIVE:
g_unknown173AD3F = false;
g_moveRequestPending = false;
if (timeGetTime() > this->standTick + 350) {
this->standTick = timeGetTime();
mode->SendMsg(MM_REQUEST_MOVE, b, d, 0, 0);

View file

@ -144,11 +144,11 @@ public:
/* 0118 */ granny_system_clock clock;
/* 0128 */ granny_system_clock startClock;
/* 0138 */ float animationTime;
/* 013C */ unsigned char unknown_013C[4];
/* 013C */ unsigned char padding_013C[4];
/* 0140 */ int tick;
/* 0144 */ float angle;
/* 0148 */ unsigned char alpha;
/* 0149 */ unsigned char unknown_0149[3];
/* 0149 */ unsigned char padding_0149[3];
/* 014C */ unsigned brightness;
/* 0150 */ char name[0x108];
};
@ -2682,11 +2682,11 @@ void CCharacterNpc::Render(int) {
struct CharacterNpcViewInfo {
/* 0000 */ int aid;
/* 0004 */ int job;
/* 0008 */ int unknown_0008[10];
/* 0008 */ int padding_0008[10];
/* 0030 */ int standAccessory;
/* 0034 */ int unknown_0034;
/* 0034 */ int padding_0034;
/* 0038 */ int moveAccessory;
/* 003C */ int unknown_003C[4];
/* 003C */ int padding_003C[4];
/* 004C */ int standAccessory2;
/* 0050 */ int standAccessory3OrMoveAccessory2;
/* 0054 */ int standBodyPaletteOrMoveAccessory3;
@ -2694,7 +2694,7 @@ struct CharacterNpcViewInfo {
/* 005C */ int moveHeadPalette;
/* 0060 */ int guildId;
/* 0064 */ int guildEmblemVersion;
/* 0068 */ int unknown_0068[2];
/* 0068 */ int padding_0068[2];
/* 0070 */ int robe;
/* 0074 */ int robeAlt;
/* 0078 */ int standBodyStyle;
@ -3629,8 +3629,8 @@ void CGameActor::ProcessHitMessage(CGameObject*, const ActorHitInfo* info, int,
int damage = info->damage;
int hitCount = info->hitCount;
const int extraDamage = info->extraDamage;
const int unknown_001C = info->cellX;
const int unknown_0020 = info->cellY;
const int cellX = info->cellX;
const int cellY = info->cellY;
const int attackSpeed = info->attackSpeed;
const int motionSpeed = info->motionSpeed;
@ -3762,8 +3762,8 @@ void CGameActor::ProcessHitMessage(CGameObject*, const ActorHitInfo* info, int,
message.targetAid = this->hitTargetAid;
message.time = timeGetTime() + delay;
message.attackerAid = this->render.accountId;
message.cellX = unknown_001C;
message.cellY = unknown_0020;
message.cellX = cellX;
message.cellY = cellY;
message.hitEffect = flag;
message.effectId = effectId;
message.blueDamage = info->blueDamage;
@ -5311,8 +5311,8 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i
int hitCount = info->hitCount;
const int skillId = info->skillId;
int type = info->type;
const int unknown_001C = info->cellX;
const int unknown_0020 = info->cellY;
const int cellX = info->cellX;
const int cellY = info->cellY;
const int attackSpeed = info->attackSpeed;
const int motionSpeed = info->motionSpeed;
if (hitCount <= 0 || hitCount > 36) {
@ -5418,8 +5418,8 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i
message.damage = damage;
message.time = timeGetTime() + delay;
message.attackerAid = this->render.accountId;
message.cellX = unknown_001C;
message.cellY = unknown_0020;
message.cellX = cellX;
message.cellY = cellY;
message.hitEffect = effect;
message.effectId = followEffect;
message.monsterValue = level;
@ -5443,8 +5443,8 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i
message.damage = damage;
message.time = timeGetTime() + delay;
message.attackerAid = this->render.accountId;
message.cellX = unknown_001C;
message.cellY = unknown_0020;
message.cellX = cellX;
message.cellY = cellY;
message.hitEffect = -1;
message.effectId = -1;
message.monsterValue = level;
@ -5689,8 +5689,8 @@ void CGameActor::ProcessSkillMessage(CGameObject*, const ActorSkillInfo* info, i
message.damage = damage;
message.time = timeGetTime() + delay;
message.attackerAid = this->render.accountId;
message.cellX = unknown_001C;
message.cellY = unknown_0020;
message.cellX = cellX;
message.cellY = cellY;
message.hitEffect = effect;
message.effectId = followEffect;
message.monsterValue = level;

View file

@ -93,7 +93,7 @@ void RenderObjectState::Reset() {
this->hoverAngle = 0;
this->hoverHeight = 0;
this->fontSequenceState = 0;
this->unknown_0100 = 0;
this->padding_0100 = 0;
this->accountId = 0;
this->specialMotionLocked = 0;
this->frameSequenceActive = 0;

View file

@ -59,7 +59,7 @@ struct RenderObjectState {
/* 00A4 */ std::uint16_t visibilityState;
/* 00A4 */ unsigned char visibilityOptions[2];
};
/* 00A6 */ unsigned char unknown_00A6[2];
/* 00A6 */ unsigned char padding_00A6[2];
/* 00A8 */ std::uint32_t isCharacter;
/* 00AC */ int screenX;
/* 00B0 */ int screenY;
@ -73,7 +73,7 @@ struct RenderObjectState {
/* 00C3 */ unsigned char sequenceFinishAnimation;
/* 00C4 */ unsigned char sequenceFinishFrame;
/* 00C5 */ unsigned char sequenceIndex;
/* 00C6 */ unsigned char unknown_00C6[2];
/* 00C6 */ unsigned char padding_00C6[2];
/* 00C8 */ std::uint32_t frameSequenceActive;
/* 00CC */ int sequenceLoop;
/* 00D0 */ int sequenceTimed;
@ -92,30 +92,30 @@ struct RenderObjectState {
/* 00F0 */ unsigned char pulsePhases[2];
};
/* 00F2 */ unsigned char outlineAlpha;
/* 00F3 */ unsigned char unknown_00F3;
/* 00F3 */ unsigned char padding_00F3;
/* 00F4 */ short effectPhase;
/* 00F6 */ unsigned char tintPhase;
/* 00F7 */ unsigned char unknown_00F7;
/* 00F7 */ unsigned char runStartTick;
/* 00F8 */ short hoverAngle;
/* 00FA */ unsigned char hoverHeight;
/* 00FB */ unsigned char unknown_00FB;
/* 00FB */ unsigned char battleTeam;
union {
/* 00FC */ std::uint32_t fontSequenceState;
/* 00FC */ unsigned char fontSequenceBytes[4];
};
/* 0100 */ unsigned char unknown_0100;
/* 0101 */ unsigned char unknown_0101[3];
/* 0100 */ unsigned char padding_0100;
/* 0101 */ unsigned char padding_0101[3];
/* 0104 */ CSprRes* sprite;
/* 0108 */ CActRes* action;
/* 010C */ std::uint32_t spriteJob;
/* 0110 */ std::uint32_t accountId;
/* 0114 */ unsigned char specialMotionLocked;
/* 0115 */ unsigned char unknown_0115[3];
/* 0115 */ unsigned char padding_0115[3];
/* 0118 */ CInstantVar instant;
/* 0124 */ std::uint32_t blendFlags;
/* 0128 */ std::uint32_t hoverOffsetLow;
/* 012C */ std::uint32_t hoverOffsetHigh;
/* 0130 */ unsigned char unknown_0130[8];
/* 0130 */ unsigned char translucentOther[8];
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -354,9 +354,9 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int
case AM_SKILL: {
const SkillHitMessage* hit = reinterpret_cast<const SkillHitMessage*>(b);
const int skillId = hit->skillId;
const int unknown_0014 = hit->monsterValue;
const int unknown_001C = hit->cellX;
const int unknown_0020 = hit->cellY;
const int monsterValue = hit->monsterValue;
const int cellX = hit->cellX;
const int cellY = hit->cellY;
const int motionSpeed = hit->motionSpeed;
int hitCount = hit->hitCount;
if (hitCount == 0) {
@ -447,11 +447,11 @@ void CSkill::SendMsg(CGameObject* sender, int message, int a, int b, int c, int
damageMessage.damage = damage;
damageMessage.time = timeGetTime();
damageMessage.attackerAid = this->skillAid;
damageMessage.cellX = unknown_001C;
damageMessage.cellY = unknown_0020;
damageMessage.cellX = cellX;
damageMessage.cellY = cellY;
damageMessage.hitEffect = effectId;
damageMessage.effectId = -1;
damageMessage.monsterValue = unknown_0014;
damageMessage.monsterValue = monsterValue;
damageMessage.motionSpeed = static_cast<float>(motionSpeed) / 288.0f;
damageMessage.blueDamage = 0;
damageMessage.skillId = skillId;

View file

@ -31,10 +31,10 @@ public:
/* 0420 */ CRagEffect* m_effect;
/* 0424 */ int m_effectId;
/* 0428 */ bool m_hasEffect;
/* 0429 */ unsigned char unknown_0429[0x03];
/* 0429 */ unsigned char padding_0429[0x03];
/* 042C */ int range;
/* 0430 */ std::vector<std::uint64_t> m_targets;
/* 043C */ int unknown_043C;
/* 043C */ int padding_043C;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -170,9 +170,9 @@ int InsertEpisodeSubMenu(lua_State* state) {
const int id = static_cast<int>(lua_tonumber(state, -5));
const int minLevel = static_cast<int>(lua_tonumber(state, -4));
const int maxLevel = static_cast<int>(lua_tonumber(state, -3));
const int unknown = static_cast<int>(lua_tonumber(state, -2));
const int questId = static_cast<int>(lua_tonumber(state, -2));
const std::string text = lua_tostring(state, -1);
const AdventureGuideResult result = g_adventureGuideMgr->InsertEpisodeSubMenu(id, minLevel, maxLevel, unknown, text);
const AdventureGuideResult result = g_adventureGuideMgr->InsertEpisodeSubMenu(id, minLevel, maxLevel, questId, text);
if (!result.ok) {
lua_pushboolean(state, 0);
@ -240,11 +240,11 @@ int InsertEpisodeContents(lua_State* state) {
const int menu = static_cast<int>(lua_tonumber(state, -7));
const int minLevel = static_cast<int>(lua_tonumber(state, -6));
const int maxLevel = static_cast<int>(lua_tonumber(state, -5));
const int unknown = static_cast<int>(lua_tonumber(state, -4));
const int questId = static_cast<int>(lua_tonumber(state, -4));
const bool flag = lua_tonumber(state, -3) != 0;
const std::string first = lua_tostring(state, -2);
const std::string second = lua_tostring(state, -1);
const AdventureGuideResult result = g_adventureGuideMgr->InsertEpisodeContents(id, menu, minLevel, maxLevel, unknown, flag, first, second);
const AdventureGuideResult result = g_adventureGuideMgr->InsertEpisodeContents(id, menu, minLevel, maxLevel, questId, flag, first, second);
if (!result.ok) {
lua_pushboolean(state, 0);
@ -1324,11 +1324,11 @@ AdventureGuideResult CAdventureGuideMgr::InsertDungeonSubMenu(int id, int minLev
// OFFSET: 0x006654E0
// FUNCTION: fn_05243
AdventureGuideResult CAdventureGuideMgr::InsertEpisodeContents(int id, int menu, int minLevel, int maxLevel, int unknown, bool flag, std::string_view first, std::string_view second) {
AdventureGuideResult CAdventureGuideMgr::InsertEpisodeContents(int id, int menu, int minLevel, int maxLevel, int questId, bool flag, std::string_view first, std::string_view second) {
AdventureGuideContents contents;
contents.minLevel = minLevel;
contents.maxLevel = maxLevel;
contents.questId = unknown;
contents.questId = questId;
contents.flag = flag;
contents.first = first;
contents.second = second;
@ -1352,11 +1352,11 @@ AdventureGuideResult CAdventureGuideMgr::InsertEpisodeReward(int id, std::string
// OFFSET: 0x00665940
// FUNCTION: fn_05245
AdventureGuideResult CAdventureGuideMgr::InsertEpisodeSubMenu(int id, int minLevel, int maxLevel, int unknown, std::string_view text) {
AdventureGuideResult CAdventureGuideMgr::InsertEpisodeSubMenu(int id, int minLevel, int maxLevel, int questId, std::string_view text) {
AdventureGuideDetail detail;
detail.minLevel = minLevel;
detail.maxLevel = maxLevel;
detail.questId = unknown;
detail.questId = questId;
detail.text = text;
for (auto& [key, intro] : m_intros) {
if (intro.type == 1) {

View file

@ -112,8 +112,8 @@ public:
__declspec(noinline) AdventureGuideResult InsertGuideMenu(int type, int id, std::string_view name, std::string_view text);
__declspec(noinline) AdventureGuideResult InsertIntroContents(int id, std::string_view title, std::string_view text);
__declspec(noinline) AdventureGuideResult InsertEpisodeSubMenu(int id, int minLevel, int maxLevel, int unknown, std::string_view text);
__declspec(noinline) AdventureGuideResult InsertEpisodeContents(int id, int menu, int minLevel, int maxLevel, int unknown, bool flag, std::string_view first, std::string_view second);
__declspec(noinline) AdventureGuideResult InsertEpisodeSubMenu(int id, int minLevel, int maxLevel, int questId, std::string_view text);
__declspec(noinline) AdventureGuideResult InsertEpisodeContents(int id, int menu, int minLevel, int maxLevel, int questId, bool flag, std::string_view first, std::string_view second);
__declspec(noinline) AdventureGuideResult InsertEpisodeReward(int id, std::string_view text);
__declspec(noinline) AdventureGuideResult InsertQuestSubMenu(int id, int minLevel, int maxLevel, std::string_view text);
__declspec(noinline) AdventureGuideResult InsertQuestContents(int id, int menu, int minLevel, int maxLevel, bool flag, std::string_view first, std::string_view second);

View file

@ -478,8 +478,8 @@ __declspec(noinline) std::pair<int, int> CashEmotionCommand::Get(int index) cons
// OFFSET: 0x00592520
// FUNCTION: fn_02856
CashEmotionData::CashEmotionData(int id, int subId, const char* name, int unknown20, int unknown24, int actId, int sprId)
: id(id), subId(subId), name(name), actionIndex(unknown20), frameIndex(unknown24), actId(actId), sprId(sprId) {
CashEmotionData::CashEmotionData(int id, int subId, const char* name, int actionIndex, int frameIndex, int actId, int sprId)
: id(id), subId(subId), name(name), actionIndex(actionIndex), frameIndex(frameIndex), actId(actId), sprId(sprId) {
}
// OFFSET: 0x00592820
@ -502,7 +502,7 @@ bool CashEmotionPackOrder::operator()(const int& left, const int& right) const {
// OFFSET: 0x00596430
// FUNCTION: fn_02915
CCashEmotionMgr::CCashEmotionMgr()
: m_enabled(true), unknown_0005{}, m_action(nullptr), basePackId(0), packs{}, m_emotionsByPack{}, emotionOrder{}, m_packNames{}, actIds{},
: m_enabled(true), padding_0005{}, m_action(nullptr), basePackId(0), packs{}, m_emotionsByPack{}, emotionOrder{}, m_packNames{}, actIds{},
m_commands{}, packOrder{} {
}
@ -863,7 +863,7 @@ const char* CCashEmotionMgr::GetPackTitle(int packId) {
// OFFSET: 0x0059A110
// FUNCTION: fn_02954
int CCashEmotionMgr::GetPackUnknown18(int packId) {
int CCashEmotionMgr::GetPackPrice(int packId) {
auto it = this->packs.find(packId);
if (this->packs.end() == it) {
return -1;
@ -1029,7 +1029,7 @@ std::vector<int> CCashEmotionMgr::SortUnownedPacks(const char* filter) {
// OFFSET: 0x0059AD40
// FUNCTION: fn_02965
int CCashEmotionMgr::GetPackUnknown24(int packId) {
int CCashEmotionMgr::GetPackPeriod(int packId) {
auto it = this->packs.find(packId);
if (this->packs.end() == it) {
return 0;
@ -1128,18 +1128,18 @@ void CCashEmotionMgr::AddShortcut(const std::string& name, int packId, int emoti
// OFFSET: 0x0059B8F0
// FUNCTION: fn_02970
bool CCashEmotionMgr::AddEmotion(int packId, int emotionId, const char* name, int unknown20, int unknown24, const char* actFile, const char* sprFile) {
bool CCashEmotionMgr::AddEmotion(int packId, int emotionId, const char* name, int actionIndex, int frameIndex, const char* actFile, const char* sprFile) {
const int actId = this->GetActFilePath(actFile, true);
const int sprId = this->GetSprFilePath(sprFile, true);
bool inserted = false;
auto it = this->m_emotionsByPack.find(packId);
if (this->m_emotionsByPack.end() != it) {
return it->second.try_emplace(emotionId, packId, emotionId, name, unknown20, unknown24, actId, sprId).second;
return it->second.try_emplace(emotionId, packId, emotionId, name, actionIndex, frameIndex, actId, sprId).second;
}
CashEmotionTable table;
if (table.try_emplace(emotionId, packId, emotionId, name, unknown20, unknown24, actId, sprId).second == true) {
if (table.try_emplace(emotionId, packId, emotionId, name, actionIndex, frameIndex, actId, sprId).second == true) {
inserted = this->m_emotionsByPack.emplace(packId, table).second;
}
@ -1157,7 +1157,7 @@ static void AddSearchKey(std::unordered_map<std::string, std::pair<int, int>>& i
// OFFSET: 0x0059BC30
// FUNCTION: fn_02971
void CCashEmotionMgr::InsertEmotion(const int packId, const int emotionId, int unknown20, int unknown24, const char* actFile, const char* sprFile) {
void CCashEmotionMgr::InsertEmotion(const int packId, const int emotionId, int actionIndex, int frameIndex, const char* actFile, const char* sprFile) {
const char* packName = this->GetPackTitle(packId);
if (!packName) {
return;
@ -1169,7 +1169,7 @@ void CCashEmotionMgr::InsertEmotion(const int packId, const int emotionId, int u
}
std::string name = FormatOwnedString("%s_%s", baseName, packName);
this->AddEmotion(packId, emotionId, name.c_str(), unknown20, unknown24, actFile, sprFile);
this->AddEmotion(packId, emotionId, name.c_str(), actionIndex, frameIndex, actFile, sprFile);
AddSearchKey(this->m_searchIndex, name.c_str(), packId, emotionId);
@ -1433,7 +1433,7 @@ void CCashEmotionMgr::ShowErrorMessage(const char* key, int value) {
// OFFSET: 0x0059D040
// FUNCTION: fn_02984
void CCashEmotionMgr::Unknown59D040(int, int) {
void CCashEmotionMgr::EmptyHandler59D040(int, int) {
}
// OFFSET: 0x0059D090
@ -1511,14 +1511,14 @@ int CCashEmotionMgr::InsertEmotionListTable(lua_State* state) {
const int packId = luaL_checkinteger(state, 1);
const int emotionId = luaL_checkinteger(state, 2);
const std::string key = FromUtf8(luaL_checkstring(state, 3), g_textCodePage);
const int unknown20 = luaL_checkinteger(state, 4);
const int unknown24 = luaL_checkinteger(state, 5);
const int actionIndex = luaL_checkinteger(state, 4);
const int frameIndex = luaL_checkinteger(state, 5);
const std::string actFile = FromUtf8(luaL_checkstring(state, 6), g_textCodePage);
const std::string sprFile = FromUtf8(luaL_checkstring(state, 7), g_textCodePage);
const char* result;
if (key.empty()) {
g_cashEmotionMgr->AddEmotion(packId, emotionId, "", unknown20, unknown24, actFile.c_str(), sprFile.c_str());
g_cashEmotionMgr->AddEmotion(packId, emotionId, "", actionIndex, frameIndex, actFile.c_str(), sprFile.c_str());
result = nullptr;
} else {
const char* name = g_simpleStringMgr->GetString(key.c_str());
@ -1527,7 +1527,7 @@ int CCashEmotionMgr::InsertEmotionListTable(lua_State* state) {
}
result = nullptr;
if (g_cashEmotionMgr->AddEmotion(packId, emotionId, name, unknown20, unknown24, actFile.c_str(), sprFile.c_str())) {
if (g_cashEmotionMgr->AddEmotion(packId, emotionId, name, actionIndex, frameIndex, actFile.c_str(), sprFile.c_str())) {
result = name;
}
}
@ -1582,12 +1582,12 @@ int CCashEmotionMgr::InsertEmotionMsgListTableForCustom(lua_State* state) {
int CCashEmotionMgr::InsertEmotionVarientListTable(lua_State* state) {
const int packId = luaL_checkinteger(state, 1);
const int emotionId = luaL_checkinteger(state, 2);
const int unknown20 = luaL_checkinteger(state, 3);
const int unknown24 = luaL_checkinteger(state, 4);
const int actionIndex = luaL_checkinteger(state, 3);
const int frameIndex = luaL_checkinteger(state, 4);
const std::string actFile = FromUtf8(luaL_checkstring(state, 5), g_textCodePage);
const std::string sprFile = FromUtf8(luaL_checkstring(state, 6), g_textCodePage);
g_cashEmotionMgr->InsertEmotion(packId, emotionId, unknown20, unknown24, actFile.c_str(), sprFile.c_str());
g_cashEmotionMgr->InsertEmotion(packId, emotionId, actionIndex, frameIndex, actFile.c_str(), sprFile.c_str());
return 1;
}
@ -1628,8 +1628,8 @@ int CCashEmotionMgr::InsertPackInfo(lua_State* state) {
const char* name = g_simpleStringMgr->GetString(title.c_str());
const int saleType = luaL_checkinteger(state, 3);
const int unknown18 = luaL_checkinteger(state, 4);
if (!(saleType == 0 && unknown18 == 0) && !(saleType == 1 && unknown18 != 0)) {
const int price = luaL_checkinteger(state, 4);
if (!(saleType == 0 && price == 0) && !(saleType == 1 && price != 0)) {
g_cashEmotionMgr->ShowErrorMessage("EMSG_ERR_SALE_TYPE", packId);
return 1;
}
@ -1660,14 +1660,14 @@ int CCashEmotionMgr::InsertPackInfo(lua_State* state) {
}
const int useType = luaL_checkinteger(state, 8);
const int unknown24 = luaL_checkinteger(state, 9);
if (!(useType == 0 && unknown24 == 0) && !(useType == 1 && unknown24 != 0)) {
const int period = luaL_checkinteger(state, 9);
if (!(useType == 0 && period == 0) && !(useType == 1 && period != 0)) {
g_cashEmotionMgr->ShowErrorMessage("EMSG_ERR_USE_TIME", packId);
return 1;
}
const char limited = static_cast<char>(luaL_checkinteger(state, 10));
if (g_cashEmotionMgr->packs.try_emplace(packId, name, unknown18, startTime, endTime, unknown24, limited).second == true) {
if (g_cashEmotionMgr->packs.try_emplace(packId, name, price, startTime, endTime, period, limited).second == true) {
g_cashEmotionMgr->packOrder.push_back(packId);
}
@ -1931,7 +1931,7 @@ __declspec(noinline) void UICashEmotionListChildWnd_Purchase::Refresh(const char
} else {
pack->SetTitle(nullptr);
}
pack->m_limited = g_cashEmotionMgr->GetPackUnknown24(packId) > 0;
pack->m_limited = g_cashEmotionMgr->GetPackPeriod(packId) > 0;
pack->Move(9, y);
y += height;
this->AddChild(pack);
@ -2146,7 +2146,7 @@ __declspec(noinline) void UICashEmotionListChildWnd_UnPurchased::Refresh(const c
} else {
pack->SetTitle(nullptr);
}
pack->m_limited = g_cashEmotionMgr->GetPackUnknown24(packId) > 0;
pack->m_limited = g_cashEmotionMgr->GetPackPeriod(packId) > 0;
pack->Move(9, y);
y += height;
this->AddChild(pack);
@ -2409,7 +2409,7 @@ int UICashEmotionListWnd::SetPeriod(int packId) {
return 0;
}
const int period = g_cashEmotionMgr->GetPackUnknown24(packId);
const int period = g_cashEmotionMgr->GetPackPeriod(packId);
if (period < 1) {
this->m_period->Show(0);
} else {
@ -2519,7 +2519,7 @@ int UICashEmotionListWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a
}
}
const int price = g_cashEmotionMgr->GetPackUnknown18(packId);
const int price = g_cashEmotionMgr->GetPackPrice(packId);
if (price < 0) {
return 0;
}
@ -2552,7 +2552,7 @@ int UICashEmotionListWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a
packet.id = 0xBEC;
packet.packId = g_cashEmotionMgr->selectedPackId;
packet.itemId = g_cashEmotionMgr->purchaseItemId;
packet.price = g_cashEmotionMgr->GetPackUnknown18(packet.packId);
packet.price = g_cashEmotionMgr->GetPackPrice(packet.packId);
GetRagConnection().Send(sizeof(packet), &packet);
}
return 0;
@ -2999,7 +2999,7 @@ void UICashEmotionPack::UpdateExpiry(Timestamp* expiry) {
// OFFSET: 0x007CA100
// FUNCTION: fn_09443
std::string UICashEmotionPack::GetPriceText(int packId) {
int price = g_cashEmotionMgr->GetPackUnknown18(packId);
int price = g_cashEmotionMgr->GetPackPrice(packId);
if (price > 0) {
const char* format = g_simpleStringMgr->GetString("EMSG_PURCHASE_PRICE");
if (format) {

View file

@ -39,7 +39,7 @@ public:
};
struct CashEmotionData {
CashEmotionData(int id, int subId, const char* name, int unknown20, int unknown24, int actId, int sprId);
CashEmotionData(int id, int subId, const char* name, int actionIndex, int frameIndex, int actId, int sprId);
/* 0000 */ int id;
/* 0004 */ int subId;
@ -52,8 +52,8 @@ struct CashEmotionData {
struct CashEmotionPack {
// INLINED
CashEmotionPack(const char* name, int unknown18, unsigned int startTime, unsigned int endTime, int unknown24, char unknown28)
: name(name), price(unknown18), startTime(startTime), endTime(endTime), period(unknown24), saleBadge(unknown28),
CashEmotionPack(const char* name, int price, unsigned int startTime, unsigned int endTime, int period, char saleBadge)
: name(name), price(price), startTime(startTime), endTime(endTime), period(period), saleBadge(saleBadge),
originalStartTime(startTime), originalEndTime(endTime) {
}
@ -142,7 +142,7 @@ public:
CashEmotionTable* GetPackEmotionTable(int packId);
CashEmotionPack* GetPack(int packId);
const char* GetPackTitle(int packId);
int GetPackUnknown18(int packId);
int GetPackPrice(int packId);
__declspec(noinline) Timestamp* FindExpiry(int packId);
__declspec(noinline) std::vector<int> SortOwnedPacks(const char* filter);
__declspec(noinline) unsigned int GetPackEndTime(int packId);
@ -154,7 +154,7 @@ public:
std::vector<int> SortPacks(const std::vector<int>& packs, const char* filter);
__declspec(noinline) const char* GetSprFileName(int sprId);
__declspec(noinline) std::vector<int> SortUnownedPacks(const char* filter);
__declspec(noinline) int GetPackUnknown24(int packId);
__declspec(noinline) int GetPackPeriod(int packId);
void SetOwnedPack(int packId, unsigned int expiry);
int LookupSpecialEmotion(CashEmotionSpecial type);
int LookupSpecialEmotion(CashEmotionSpecial type, const char* name);
@ -170,7 +170,7 @@ public:
bool RemoveExpiredPacks();
bool UpdatePurchasedPackExpiry();
void ShowErrorMessage(const char* key, int value);
void Unknown59D040(int argument1, int argument2);
void EmptyHandler59D040(int argument1, int argument2);
__declspec(noinline) int GetServerTime();
// INLINED
int BasePackId() const {
@ -185,14 +185,14 @@ public:
int GetActFilePath(const char* name, bool add);
int GetSprFilePath(const char* name, bool add);
int RegisterFileName(std::unordered_map<std::string, int>& ids, CashEmotionFileNames& names, std::function<int()> nextId, const char* name, bool add);
bool AddEmotion(int packId, int emotionId, const char* name, int unknown20, int unknown24, const char* actFile, const char* sprFile);
bool AddEmotion(int packId, int emotionId, const char* name, int actionIndex, int frameIndex, const char* actFile, const char* sprFile);
void LoadScripts();
void InsertEmotion(int packId, int emotionId, int unknown20, int unknown24, const char* actFile, const char* sprFile);
void InsertEmotion(int packId, int emotionId, int actionIndex, int frameIndex, const char* actFile, const char* sprFile);
void AcquirePack(int packId, unsigned int expiry);
protected:
/* 0004 */ bool m_enabled;
/* 0005 */ std::uint8_t unknown_0005[3];
/* 0005 */ std::uint8_t padding_0005[3];
/* 0008 */ ICashEmotionAction* m_action;
/* 000C */ int basePackId;
/* 0010 */ std::unordered_map<int, CashEmotionPack, CashEmotionKeyHash> packs;

View file

@ -50,7 +50,7 @@ void CClanInfo::Destroy() {
void CClanInfo::Clear() {
this->m_clanName = "";
this->m_masterName = "";
this->unknown_0034 = 0;
this->allyClanCount = 0;
this->m_connectedMembers = 0;
this->m_totalMembers = 0;
this->m_mapName = "";

View file

@ -11,7 +11,7 @@ public:
/* 0000 */ bool m_isInitialized;
/* 0004 */ std::string m_clanName;
/* 001C */ std::string m_masterName;
/* 0034 */ int unknown_0034;
/* 0034 */ int allyClanCount;
/* 0038 */ int m_connectedMembers;
/* 003C */ int m_totalMembers;
/* 0040 */ std::string m_mapName;
@ -33,7 +33,7 @@ extern CClanInfo* g_clanInfo;
static_assert(sizeof(CClanInfo) == 0x68);
static_assert(offsetof(CClanInfo, m_clanName) == 0x04);
static_assert(offsetof(CClanInfo, m_masterName) == 0x1C);
static_assert(offsetof(CClanInfo, unknown_0034) == 0x34);
static_assert(offsetof(CClanInfo, allyClanCount) == 0x34);
static_assert(offsetof(CClanInfo, m_mapName) == 0x40);
static_assert(offsetof(CClanInfo, m_clanId) == 0x58);
static_assert(offsetof(CClanInfo, m_hasClan) == 0x5C);

View file

@ -212,12 +212,12 @@ public:
class CEquipmentPropertiesMgr {
public:
virtual ~CEquipmentPropertiesMgr();
unsigned char unknown_0004[0x9];
unsigned char padding_0004[0x9];
bool m_dirty;
unsigned char unknown_000E[0x12];
unsigned char padding_000E[0x12];
UIWindow* m_window;
/* 0024 */ std::unordered_map<int, CEquipmentWearable*> properties1;
/* 0044 */ unsigned char unknown_0044[0x1B8];
/* 0044 */ unsigned char padding_0044[0x1B8];
CEquipmentPropertiesMgr();
CEquipmentWearable* FindProperty1(const int& key);
@ -878,11 +878,11 @@ bool CSession::Equip(const ITEM_INFO& item) {
// OFFSET: 0x00DD75C0
// FUNCTION: fn_23291
void CSession::AddShopItem(const RawItemBasic& item, int quantity, std::uint16_t unknown_006C) {
void CSession::AddShopItem(const RawItemBasic& item, int quantity, std::uint16_t priceFactor) {
ITEM_INFO value;
value.AssignBasic(item);
value.quantity = quantity;
value.priceFactor = unknown_006C;
value.priceFactor = priceFactor;
value.refiningLevel = 0;
value.damaged = 0;
value.SetItemId(std::atoi(value.itemId.c_str()));

View file

@ -44,7 +44,7 @@ namespace {
};
struct ReplayShopNameRecord {
/* 0000 */ std::int16_t unknown;
/* 0000 */ std::int16_t padding_0000;
/* 0002 */ char name[16];
/* 0012 */ int shopId;
};

View file

@ -71,15 +71,15 @@ const char* DecryptName(const char (&source)[Length]) {
}
struct NaviUnknownBlock {
/* 0000 */ int unknown_0000;
/* 0004 */ int unknown_0004;
/* 0008 */ int unknown_0008;
/* 000C */ int unknown_000C;
/* 0010 */ int unknown_0010;
/* 0014 */ int unknown_0014;
/* 0018 */ int unknown_0018;
/* 001C */ int unknown_001C;
/* 0020 */ int unknown_0020;
/* 0000 */ int padding_0000;
/* 0004 */ int padding_0004;
/* 0008 */ int padding_0008;
/* 000C */ int padding_000C;
/* 0010 */ int padding_0010;
/* 0014 */ int padding_0014;
/* 0018 */ int padding_0018;
/* 001C */ int padding_001C;
/* 0020 */ int padding_0020;
NaviUnknownBlock();
};
@ -100,8 +100,8 @@ CNavi_Object::CNavi_Object()
// OFFSET: 0x00B8C990
// FUNCTION: fn_19427
NaviUnknownBlock::NaviUnknownBlock()
: unknown_0000(0), unknown_0004(0), unknown_0008(0), unknown_000C(0), unknown_0010(0), unknown_0014(0), unknown_0018(0), unknown_001C(0),
unknown_0020(0) {
: padding_0000(0), padding_0004(0), padding_0008(0), padding_000C(0), padding_0010(0), padding_0014(0), padding_0018(0), padding_001C(0),
padding_0020(0) {
}
// OFFSET: 0x00B8C710
@ -136,7 +136,7 @@ CNavi_Link::CNavi_Link() : linkedCellX(0), linkedCellY(0) {
// OFFSET: 0x00B8C2B0
// FUNCTION: fn_19422
CNavi_Link::CNavi_Link(
int type, int index, const char* name, const char* title, int cellX, int cellY, CNaviInfo* info, CNaviInfo* linkedInfo, int unknown80, int unknown84
int type, int index, const char* name, const char* title, int cellX, int cellY, CNaviInfo* info, CNaviInfo* linkedInfo, int linkedCellX, int linkedCellY
)
: linkedCellX(0), linkedCellY(0) {
this->type = type;
@ -151,8 +151,8 @@ CNavi_Link::CNavi_Link(
this->cellY = cellY;
this->info = info;
this->linkedInfo = linkedInfo;
this->linkedCellX = unknown80;
this->linkedCellY = unknown84;
this->linkedCellX = linkedCellX;
this->linkedCellY = linkedCellY;
this->depth = 0;
}

View file

@ -23,7 +23,7 @@ struct GameSettingsOption {
/* 003C */ int tipBoxId = 0;
/* 0040 */ std::string description;
/* 0058 */ unsigned char defaultValue;
/* 0059 */ unsigned char unknown_0059[3];
/* 0059 */ unsigned char padding_0059[3];
/* 005C */ int enabledMessage = 4698;
/* 0060 */ int disabledMessage = 4698;
};

View file

@ -67,7 +67,7 @@ struct GameSettingsOption {
/* 003C */ int tipBoxId = 0;
/* 0040 */ std::string description;
/* 0058 */ unsigned char defaultValue;
/* 0059 */ unsigned char unknown_0059[3];
/* 0059 */ unsigned char padding_0059[3];
/* 005C */ int enabledMessage = 4698;
/* 0060 */ int disabledMessage = 4698;
};

View file

@ -55,7 +55,7 @@ public:
class EffectResourceSwitcher : public CEffect {
public:
/* 00CC */ unsigned char active;
/* 00CD */ unsigned char unknown_00CD[3];
/* 00CD */ unsigned char padding_00CD[3];
/* 00D0 */ CEZ2STREffectEx* effect;
/* 00D4 */ vector3d spawnPosition;
/* 00E0 */ std::string sourceName;

View file

@ -21,7 +21,7 @@ public:
/* 00CC */ EZ2STREmitter* projectileEmitter;
/* 00D0 */ EZ2STREmitter* impactEmitters[3];
/* 00DC */ bool active;
/* 00DD */ unsigned char unknown_00DD[3];
/* 00DD */ unsigned char padding_00DD[3];
/* 00E0 */ float trajectoryTime;
/* 00E4 */ vector3d impactPosition;
};

View file

@ -23,7 +23,7 @@ public:
/* 0160 */ float startFrame;
/* 0164 */ std::uint32_t targetAid;
/* 0168 */ int frameCount;
/* 016C */ int unknown_016C;
/* 016C */ int padding_016C;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -21,7 +21,7 @@ public:
/* 00CC */ EZ2STREmitter* emitter;
/* 00D0 */ unsigned char alive;
/* 00D1 */ unsigned char returning;
/* 00D2 */ unsigned char unknown_00D2[2];
/* 00D2 */ unsigned char padding_00D2[2];
/* 00D4 */ int processCount;
/* 00D8 */ float trajectoryTime;
/* 00DC */ vector3d particlePosition;

View file

@ -25,7 +25,7 @@ public:
/* 00D4 */ CEZ2STRParticle* blastParticle;
/* 00D8 */ CEZ2STRParticle* blastBottomParticle;
/* 00DC */ unsigned char openToggle;
/* 00DD */ unsigned char unknown_00DD[3];
/* 00DD */ unsigned char padding_00DD[3];
/* 00E0 */ std::int64_t startTime;
};

View file

@ -26,7 +26,7 @@ public:
virtual void ProcessParticle(CEZ2STRParticle* particle);
virtual void RenderParticle(CEZ2STRParticle* particle);
/* 00CC */ int unknown_00CC;
/* 00CC */ int padding_00CC;
/* 00D0 */ long long startTime;
/* 00D8 */ int elapsedFrames;
/* 00DC */ std::vector<CEZ2STRParticle*> particles;

View file

@ -11,7 +11,7 @@ public:
void SendMsg(CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m) override;
/* 0158 */ int lifeFrames;
/* 015C */ int unknown_015C;
/* 015C */ int padding_015C;
};
#if defined(_WIN32) && !defined(_WIN64)

File diff suppressed because it is too large Load diff

View file

@ -32,7 +32,7 @@ public:
/* 00CC */ EZ2STREmitter* emitter;
/* 00D0 */ unsigned char timed;
/* 00D1 */ unsigned char unknown_00D1[3];
/* 00D1 */ unsigned char padding_00D1[3];
/* 00D4 */ int frameStep;
/* 00D8 */ unsigned char alternateRender;
};

View file

@ -73,7 +73,7 @@ public:
/* 002C */ int effectLifetime;
/* 0030 */ int effectArgument;
/* 0034 */ unsigned char outsideRange;
/* 0035 */ unsigned char unknown_0035[3];
/* 0035 */ unsigned char padding_0035[3];
/* 0038 */ int range;
/* 003C */ unsigned char areaParameters[12];
/* 0048 */ int scaleParameter;
@ -85,10 +85,10 @@ public:
/* 00C0 */ unsigned char retained;
/* 00C1 */ unsigned char emissionStopped;
/* 00C2 */ unsigned char forceRender;
/* 00C3 */ unsigned char unknown_00C3;
/* 00C3 */ unsigned char padding_00C3;
/* 00C4 */ int instanceId;
/* 00C8 */ unsigned char headAttached;
/* 00C9 */ unsigned char unknown_00C9[3];
/* 00C9 */ unsigned char padding_00C9[3];
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -3,7 +3,7 @@
#include "Contents/Effects/RagEffect.h"
// INLINED
EffectActorState::EffectActorState() : unknown_0138(-1), unknown_013C(0), effectLaunched(0), first(nullptr), second(nullptr) {
EffectActorState::EffectActorState() : padding_0138(-1), padding_013C(0), effectLaunched(0), first(nullptr), second(nullptr) {
}
// INLINED
@ -13,7 +13,7 @@ EffectActorState::~EffectActorState() {
// OFFSET: 0x00CA82E0
// FUNCTION: fn_20987
EffectActor::EffectActor() {
this->render.unknown_0130[0] = 0;
this->render.translucentOther[0] = 0;
}
// OFFSET: 0x00CA8C40
@ -35,10 +35,10 @@ EffectActor::~EffectActor() {
// OFFSET: 0x00CAF4B0
// FUNCTION: fn_21083
void EffectActor::ResetEffectState() {
this->state.unknown_0138 = -1;
this->state.unknown_013C = 0;
this->state.padding_0138 = -1;
this->state.padding_013C = 0;
this->state.effectLaunched = 0;
this->state.first = nullptr;
this->state.second = nullptr;
this->render.unknown_0130[0] = 0;
this->render.translucentOther[0] = 0;
}

View file

@ -14,8 +14,8 @@ struct EffectActorState {
EffectActorState();
~EffectActorState();
/* 0138 */ int unknown_0138;
/* 013C */ std::uint32_t unknown_013C;
/* 0138 */ int padding_0138;
/* 013C */ std::uint32_t padding_013C;
/* 0140 */ std::uint32_t effectLaunched;
/* 0144 */ std::list<CRagEffect*> effects;
/* 014C */ CRagEffect* first;

View file

@ -6,31 +6,31 @@
#include <cstddef>
struct EZ2STREmitter {
/* 0000 */ unsigned char unknown_0000[0x24];
/* 0000 */ unsigned char padding_0000[0x24];
/* 0024 */ vector3d position;
/* 0030 */ unsigned char unknown_0030[0x14];
/* 0030 */ unsigned char padding_0030[0x14];
/* 0044 */ int alpha;
/* 0048 */ unsigned char unknown_0048[0x8];
/* 0048 */ unsigned char padding_0048[0x8];
/* 0050 */ int baseAngle;
/* 0054 */ unsigned char unknown_0054[0x70];
/* 0054 */ unsigned char padding_0054[0x70];
/* 00C4 */ float angle;
/* 00C8 */ unsigned char unknown_00C8[0x4];
/* 00C8 */ unsigned char padding_00C8[0x4];
/* 00CC */ float lifetime;
/* 00D0 */ vector3d offset;
/* 00DC */ unsigned char unknown_00DC[0xC];
/* 00DC */ unsigned char padding_00DC[0xC];
/* 00E8 */ int elapsed;
/* 00EC */ unsigned char unknown_00EC[0x1DC];
/* 00EC */ unsigned char padding_00EC[0x1DC];
/* 02C8 */ vector3d velocity;
/* 02D4 */ unsigned char unknown_02D4[0x4];
/* 02D4 */ unsigned char padding_02D4[0x4];
/* 02D8 */ float speed;
/* 02DC */ unsigned char unknown_02DC[0x39E8];
/* 02DC */ unsigned char padding_02DC[0x39E8];
/* 3CC4 */ int currentFrame;
/* 3CC8 */ int frameCount;
/* 3CCC */ unsigned char unknown_3CCC[0x28C];
/* 3CCC */ unsigned char padding_3CCC[0x28C];
/* 3F58 */ int playbackState;
/* 3F5C */ unsigned char looping;
/* 3F5D */ unsigned char fadeOut;
/* 3F5E */ unsigned char unknown_3F5E[0x3A];
/* 3F5E */ unsigned char padding_3F5E[0x3A];
/* 3F98 */ int lifetimeLimit;
/* 3F9C */ int remainingLoops;
/* 3FA0 */ int duration;
@ -39,7 +39,7 @@ struct EZ2STREmitter {
/* 3FAC */ float yaw;
/* 3FB0 */ float scale;
/* 3FB4 */ float remainingTime;
/* 3FB8 */ unsigned char unknown_3FB8[0x30];
/* 3FB8 */ unsigned char padding_3FB8[0x30];
/* 3FE8 */ unsigned char flipX;
/* 3FE9 */ unsigned char flipY;
/* 3FEA */ unsigned char repeatFrame;

View file

@ -1849,7 +1849,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_PNEUMA, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1130, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_BAKURETSU_HADOU, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_FIREDANCE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -1885,37 +1885,37 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1146, new (std::nothrow) CEffectAllocator<CCloud>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1147, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_POPCORN, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1151, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_NOTHING, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1152, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_WATER, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1153, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_GROUND, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1154, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_FIRE, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1155, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_WIND, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1156, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_POISON, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1157, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_SAINT, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1158, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_DARKNESS, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1159, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_TELEKINESIS, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1160, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_IMMUNE_PROPERTY_UNDEAD, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1187, new (std::nothrow) CEffectAllocator<CRandomOptEffect>)) {
@ -1927,7 +1927,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1191, new (std::nothrow) CEffectAllocator<CRandomOptEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1192, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_RANDOM_OPT_YELLOW, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1196, new (std::nothrow) CEffectAllocator<CNewCloudKillEffect>)) {
@ -1942,7 +1942,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_LIGHTSPHERE_STAR, new (std::nothrow) CEffectAllocator<CLightSphereEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1200, new (std::nothrow) CEffectAllocator<CJupitelThunderHit>)) {
if (!this->RegisterAllocator(EF_THUNDER_PLAZMA_BLAST, new (std::nothrow) CEffectAllocator<CJupitelThunderHit>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1201, new (std::nothrow) CEffectAllocator<CGravityControlEffect>)) {
@ -1957,10 +1957,10 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1211, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1212, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_SUBJECT_AURA_1212, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1213, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_SUBJECT_AURA_1213, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1214, new (std::nothrow) CEffectAllocator<CSunStanceEffect>)) {
@ -2014,7 +2014,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_BOOK_OF_DIMENSION, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1232, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_BOOK_OF_CREATINGSTAR, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_CURSE_EXPLOSION, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
@ -2023,13 +2023,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_SOUL_REAPER, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1235, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_SOUL_SHADOW, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1236, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_SOUL_FAIRY, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1237, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_SOUL_FALCON, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_SOUL_CURSE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -2351,7 +2351,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_NEW_BANISHINGPOINT_11, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1377, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_VALKYRIE_WING, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_DRAGONBREATH_BOMB, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -2462,7 +2462,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_NEW_COMET_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1419, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_C_AMDARAIS_EFFECT, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_RAYOFGENESIS, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -2987,13 +2987,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_RED_WAVE_3, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1617, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_BLACKBUBBLE_SMALL, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1618, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_BLACKBUBBLE_MIDIUM, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1619, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_BLACKBUBBLE_LARGE, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_WALLOFTHORN_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3107,13 +3107,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_NEW_AXEBOOMERANG_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1661, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_HACKANDSLASH, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1662, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_HACKANDSLASH_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1663, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_HACKANDSLASH_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_SPELLFIST_FIRE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3131,19 +3131,19 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_NEW_SPELLFIST_WIND, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1670, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_STORMSLASH_1, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1671, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_STORMSLASH_2, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1672, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_STORMSLASH_3, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1673, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_STORMSLASH_4, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1674, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_STORMSLASH_5, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_CARTBOOST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3203,13 +3203,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1694, new (std::nothrow) CEffectAllocator<CServantWeaponEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1695, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_SERVANTWEAPON_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1696, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_SERVANTWEAPON_HIT_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1697, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_SERVANTWEAPON_SHOOT_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_POWERSWING_01, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3245,43 +3245,43 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_NEW_EARTHDRIVE_TARGET, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1710, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_SIGN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2280, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_SIGN_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1711, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_SIGN_DOWN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1712, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_SIGN_DOWN_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1713, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_PHANTOM_DOWN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1714, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_PHANTOM_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1715, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_PHANTOM_HIT_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1716, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_PHANTOM_SUB, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1717, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_PHANTOM_SUB_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1718, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_DEMOLITION_COLLECT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1719, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_DEMOLITION_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1720, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_DEMOLITION_LEFTDOWN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1721, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SERVANT_DEMOLITION_RIGHTDOWN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_DRAGONIC_AURA, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3302,16 +3302,16 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_DRAGONIC_AURA_BUFF_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1728, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_MADNESS_CRUSHER, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1729, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_MADNESS_CRUSHER_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1750, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_VIGOR_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1751, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_VIGOR_BUFF, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_AUTOSHADOWSPELL, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3386,7 +3386,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1755, new (std::nothrow) CEffectAllocator<CStormCannonEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1756, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
if (!this->RegisterAllocator(EF_CRIMSONARROW, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_CRIMSON_ARROW_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3398,7 +3398,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_CRIMSON_ARROW_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1760, new (std::nothrow) CEffectAllocator<CViolentQuakeEffect>)) {
if (!this->RegisterAllocator(EF_VIOLENTQUAKE, new (std::nothrow) CEffectAllocator<CViolentQuakeEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_VIOLENT_QUAKE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3419,13 +3419,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1764, new (std::nothrow) CEffectAllocator<CChargingPierceEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1765, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_CHARGINGPIERCE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1766, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_CHARGINGPIERCE_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1767, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_CHARGINGPIERCE_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1768, new (std::nothrow) CEffectAllocator<CAstralStrikeEffect>)) {
@ -3665,13 +3665,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_1829, new (std::nothrow) CEffectAllocator<CDancingKnifeEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1827, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_DANCING_KNIFE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1828, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_DANCING_KNIFE_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1830, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ABYSS_DAGGER_HIT_1830, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_REPARATIO_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3740,10 +3740,10 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_CRYSTAL_IMPACT_BUFF, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1862, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_ENCHANTING_SHADOW, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1863, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_NEW_ENCHANTING_SHADOW_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_RELIGIO, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3761,19 +3761,19 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_FATAL_SHADOW_CROW_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1869, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
if (!this->RegisterAllocator(EF_DROPITEM_BLUE, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1870, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
if (!this->RegisterAllocator(EF_DROPITEM_GREEN, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1871, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
if (!this->RegisterAllocator(EF_DROPITEM_RED, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1189, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
if (!this->RegisterAllocator(EF_DROPITEM_YELLOW, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1190, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
if (!this->RegisterAllocator(EF_DROPITEM_PURPLE, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1186, new (std::nothrow) CEffectAllocator<CDropItemEffect>)) {
@ -3791,7 +3791,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_2467, new (std::nothrow) CEffectAllocator<CShadowExceedNew>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1868, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SHADOW_EXCEED_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1867, new (std::nothrow) CEffectAllocator<CShadowExceed>)) {
@ -3851,13 +3851,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_STRATUM_TREMOR_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1895, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_IMPACT_CRATER, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1896, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_IMPACT_CRATER_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1898, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_IMPACT_CRATER_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_WIND_SIGN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -3944,34 +3944,34 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_ETERNAL_SLASH_HIT_2, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1960, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CALUMITYGALE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1961, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CALUMITYGALE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1962, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CALUMITYGALE_LOOP, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NEW_POTENT_VENOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1950, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CRESCIVEBOLT_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1951, new (std::nothrow) CEffectAllocator<CCresciveBolt>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1952, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CRESCIVEBOLT_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1953, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SHADOW_STAB, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1954, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ETERNAL_SLASH_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_1955, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_SHADOW_STAB_HIT2, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_SINCERE_FAITH, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4145,13 +4145,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_FIRM_FAITH, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2006, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_KVASIRSONATA, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2007, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_KVASIRSONATA_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2008, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_KVASIRSONATA_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_CHAIN_REACTION_SHOT_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4169,13 +4169,13 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_CHAIN_REACTION_SHOT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2000, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_MYSTICSYMPHONY, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2001, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_MYSTICSYMPHONY_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2002, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_MYSTICSYMPHONY_NOTE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_ACTIVITY_BURN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4235,7 +4235,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_SPELL_ENCHANTING, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2026, new (std::nothrow) CEffectAllocator<CSevereRainStorm>)) {
if (!this->RegisterAllocator(EF_DIAMOND_STORM, new (std::nothrow) CEffectAllocator<CSevereRainStorm>)) {
return false;
}
if (!this->RegisterAllocator(EF_DIAMOND_STORM_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4262,19 +4262,19 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_VENOM_SWAMP_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2046, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROSEBLOSSOM_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2047, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROSEBLOSSOM_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2048, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROSEBLOSSOM_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2049, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROSEBLOSSOM_ROSE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2050, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROSEBLOSSOM_SHOT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_ARDOR, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4346,34 +4346,34 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_METALLIC_FURY, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2065, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JAWAII_SERENADE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2066, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JAWAII_SERENADE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2067, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JAWAII_SERENADE_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2068, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_PRONMARCH, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2069, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_PRONMARCH_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2070, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_PRONMARCH_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2071, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_RHYTHMSHOOTING_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2072, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_RHYTHMSHOOTING_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2073, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_RHYTHMSHOOTING_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2074, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
if (!this->RegisterAllocator(EF_RHYTHMSHOOTING_SHOT, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_NIFLHEIM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4472,28 +4472,28 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_ABYSS_DAGGER_HIT_2, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2114, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
if (!this->RegisterAllocator(EF_FRENZY_SHOT, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_FRENZY_SHOT_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2116, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GEF_NOCTURN, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2117, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GEF_NOCTURN_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2118, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GEF_NOCTURN_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2119, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROKI_CAPRICCIO, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2120, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROKI_CAPRICCIO_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2121, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ROKI_CAPRICCIO_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_MUSICAL_INTERLUDE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4502,10 +4502,10 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_MUSICAL_INTERLUDE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2124, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_AIN_RHAPSODY, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2125, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_AIN_RHAPSODY_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_TERRA_DRIVE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4571,7 +4571,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_ELEMENTAL_BUSTER_WIND_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2154, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
if (!this->RegisterAllocator(EF_UNLUCKY_RUSH, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNLUCKY_RUSH_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4580,16 +4580,16 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_ABYSS_DAGGER_HIT_3, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2157, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_OVERSLASH, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2158, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_OVERSLASH_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2159, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_OVERSLASH_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2160, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_OVERSLASH_HIT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_ADVANCED_PROTECTION, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -4607,58 +4607,58 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_2462, new (std::nothrow) CEffectAllocator<CSevereRainStorm>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2165, new (std::nothrow) CEffectAllocator<CSevereRainStorm>)) {
if (!this->RegisterAllocator(EF_CROSS_RAIN, new (std::nothrow) CEffectAllocator<CSevereRainStorm>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2166, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CROSS_RAIN_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2167, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CROSS_RAIN_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2168, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_CROSS_RAIN_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2175, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GRAND_JUDGEMENT, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2176, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GRAND_JUDGEMENT_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2177, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GRAND_JUDGEMENT_BUFF, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2178, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GRAND_JUDGEMENT_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2179, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GRAND_JUDGEMENT_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2169, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GUARD_STANCE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2170, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GUARD_STANCE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2171, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GUARD_STANCE_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2172, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ATTACK_STANCE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2173, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ATTACK_STANCE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2174, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ATTACK_STANCE_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2181, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_HOLY_SHIELD, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2180, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_HOLY_SHIELD_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2182, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_HOLY_SHIELD_LOOP, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2183, new (std::nothrow) CEffectAllocator<CAxeBoomerang>)) {
@ -4676,49 +4676,49 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_THE_W_PROTECTION_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2188, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GUARDIANSHIELD, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2189, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GUARDIANSHIELD_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2190, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_GUARDIANSHIELD_SUB, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2191, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JUDGEMENT_CROSS, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2192, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JUDGEMENT_CROSS_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2193, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JUDGEMENT_CROSS_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2194, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_JUDGEMENT_CROSS_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2195, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
if (!this->RegisterAllocator(EF_JUDGEMENT_CROSS_SHOT, new (std::nothrow) CEffectAllocator<CCrimsonArrowEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2196, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_REBOUND_SHIELD, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2197, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_REBOUND_SHIELD_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2198, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_REBOUND_SHIELD_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2199, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_REBOUND_SHIELD_CAST_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2200, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ULTIMATESACRIFICE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2201, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ULTIMATESACRIFICE_BOTTOM, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2202, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
if (!this->RegisterAllocator(EF_ULTIMATESACRIFICE_SHINE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_ACIDIFIED_ZONE_FIRE_CAST, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
@ -5125,7 +5125,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_NPC_GATE_SKYBLUE, new (std::nothrow) CEffectAllocator<CEZ2STRScreenEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2394, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_SERPENT_SHADOW, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2400, new (std::nothrow) CEffectAllocator<CGravityControlEffect>)) {
@ -5161,22 +5161,22 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_2412, new (std::nothrow) CEffectAllocator<CFootprintStrEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2420, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_VIOLEN_HIT, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2424, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_C_AURA_OF_GHOST_S, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2428, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_ATQUE_POENITENTIA, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2429, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_PERM_FROST_OBLIVION, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2430, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_C_GUIDE_OF_DEAD_TEXT, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2431, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_C_MEDJED_TEXT, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2441, new (std::nothrow) CEffectAllocator<CThunderingOrb>)) {
@ -5194,7 +5194,7 @@ bool EffectLists::RegisterAllocators() {
if (!this->RegisterAllocator(EF_UNK_2473, new (std::nothrow) CEffectAllocator<EffectResourceSwitcher>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2458, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
if (!this->RegisterAllocator(EF_S_BEELZEBUB_WING, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {
return false;
}
if (!this->RegisterAllocator(EF_UNK_2443, new (std::nothrow) CEffectAllocator<CSpriteEffect>)) {

View file

@ -29,17 +29,17 @@ struct EffectPrimitiveRecord {
struct EffectPrimitiveSlot {
EffectPrimitiveSlot();
/* 0000 */ char life;
/* 0001 */ unsigned char unknown_0001;
/* 0001 */ unsigned char padding_0001;
/* 0002 */ std::int16_t alphaB;
/* 0004 */ std::int16_t alphaT;
/* 0006 */ std::int16_t fullDisplayAngle;
/* 0008 */ float maxHeight;
/* 000C */ int process;
/* 0010 */ std::int16_t rotStart;
/* 0012 */ unsigned char unknown_0012[2];
/* 0012 */ unsigned char padding_0012[2];
/* 0014 */ float height[21];
/* 0068 */ char flag1[21];
/* 007D */ unsigned char unknown_007D;
/* 007D */ unsigned char padding_007D;
/* 007E */ std::int16_t riseAngle;
/* 0080 */ float distance;
union {
@ -98,7 +98,7 @@ struct EffectPrimitiveState {
/* 024C */ int greenSpeed;
/* 0250 */ int blueSpeed;
/* 0254 */ unsigned char repeatAnim;
/* 0255 */ unsigned char unknown_0255[3];
/* 0255 */ unsigned char padding_0255[3];
/* 0258 */ std::vector<float> chPoint;
/* 0264 */ std::vector<float> chVal1;
/* 0270 */ std::vector<float> chVal2;

View file

@ -1136,7 +1136,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_SU_POWEROFFLOCK] = 1127;
result[EF_UNK_1128] = 1128;
result[EF_SU_SVG_SPIRIT] = 1129;
result[EF_UNK_1130] = 1130;
result[EF_BAKURETSU_HADOU] = 1130;
result[EF_SU_SPIRIT_OF_LIFE] = 99;
result[EF_SU_STOOP] = 99999999;
result[EF_FIREDANCE] = 1133;
@ -1153,20 +1153,20 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_UNK_1144] = 100;
result[EF_RL_HAMMER_OF_GOD] = 99999999;
result[EF_UNK_1146] = 1146;
result[EF_UNK_1147] = 99999999;
result[EF_POPCORN] = 99999999;
result[EF_RL_R_TRIP] = 9999999;
result[EF_IMMUNE_PROPERTY] = 99999;
result[EF_MOVE_COORDINATE] = 300;
result[EF_UNK_1151] = 1151;
result[EF_UNK_1152] = 1152;
result[EF_UNK_1153] = 1153;
result[EF_UNK_1154] = 1154;
result[EF_UNK_1155] = 1155;
result[EF_UNK_1156] = 1156;
result[EF_UNK_1157] = 1157;
result[EF_UNK_1158] = 1158;
result[EF_UNK_1159] = 1159;
result[EF_UNK_1160] = 1160;
result[EF_IMMUNE_PROPERTY_NOTHING] = 1151;
result[EF_IMMUNE_PROPERTY_WATER] = 1152;
result[EF_IMMUNE_PROPERTY_GROUND] = 1153;
result[EF_IMMUNE_PROPERTY_FIRE] = 1154;
result[EF_IMMUNE_PROPERTY_WIND] = 1155;
result[EF_IMMUNE_PROPERTY_POISON] = 1156;
result[EF_IMMUNE_PROPERTY_SAINT] = 1157;
result[EF_IMMUNE_PROPERTY_DARKNESS] = 1158;
result[EF_IMMUNE_PROPERTY_TELEKINESIS] = 1159;
result[EF_IMMUNE_PROPERTY_UNDEAD] = 1160;
result[EF_QUAGMIRE_VISUAL] = 150;
result[EF_LORD_OF_VERMILLION_VISUAL] = 9999;
result[EF_METEOR_STORM_VISUAL] = 9999;
@ -1195,10 +1195,10 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_UNK_1186] = 1186;
result[EF_UNK_1187] = 1187;
result[EF_UNK_1188] = 1188;
result[EF_UNK_1189] = 1189;
result[EF_UNK_1190] = 1190;
result[EF_DROPITEM_YELLOW] = 1189;
result[EF_DROPITEM_PURPLE] = 1190;
result[EF_UNK_1191] = 1191;
result[EF_UNK_1192] = 1192;
result[EF_RANDOM_OPT_YELLOW] = 1192;
result[EF_UNK_1193] = 1193;
result[EF_UNK_1194] = 1194;
result[EF_AUTOSHADOWSPELL_ACTIVE] = 1195;
@ -1206,7 +1206,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_LIGHTSPHERE_SUN] = 1197;
result[EF_LIGHTSPHERE_MOON] = 1198;
result[EF_LIGHTSPHERE_STAR] = 1199;
result[EF_UNK_1200] = 1200;
result[EF_THUNDER_PLAZMA_BLAST] = 1200;
result[EF_UNK_1201] = 1201;
result[EF_NOVAEXPLOSING] = 1202;
result[EF_STAR_EMPEROR] = 1203;
@ -1218,8 +1218,8 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_BLINK_BODY] = 100;
result[EF_LINELINK5] = 200;
result[EF_UNK_1211] = 1211;
result[EF_UNK_1212] = 1212;
result[EF_UNK_1213] = 1213;
result[EF_SUBJECT_AURA_1212] = 1212;
result[EF_SUBJECT_AURA_1213] = 1213;
result[EF_UNK_1214] = 1214;
result[EF_UNK_1215] = 1215;
result[EF_UNK_1216] = 1216;
@ -1238,12 +1238,12 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEWMOON_KICK] = 1229;
result[EF_FULLMOON_KICK] = 1230;
result[EF_BOOK_OF_DIMENSION] = 1231;
result[EF_UNK_1232] = 1232;
result[EF_BOOK_OF_CREATINGSTAR] = 1232;
result[EF_CURSE_EXPLOSION] = 1233;
result[EF_SOUL_REAPER] = 1234;
result[EF_UNK_1235] = 1235;
result[EF_UNK_1236] = 1236;
result[EF_UNK_1237] = 1237;
result[EF_SOUL_SHADOW] = 1235;
result[EF_SOUL_FAIRY] = 1236;
result[EF_SOUL_FALCON] = 1237;
result[EF_SOUL_CURSE] = 1238;
result[EF_PROMINENCE_KICK] = 1239;
result[EF_SOUL_REAPER_COLLECT] = 1240;
@ -1383,7 +1383,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEW_BANISHINGPOINT_05] = 1374;
result[EF_NEW_BANISHINGPOINT_07] = 1375;
result[EF_NEW_BANISHINGPOINT_11] = 1376;
result[EF_UNK_1377] = 99999999;
result[EF_VALKYRIE_WING] = 99999999;
result[EF_NEW_DRAGONBREATH_BOMB] = 1378;
result[EF_NEW_DRAGONBREATH_BOMB_BOTTOM] = 1379;
result[EF_NEW_DRAGONBREATH_01] = 1380;
@ -1425,7 +1425,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEW_COMET_SUB_EXP] = 1416;
result[EF_NEW_COMET_SUB_EXP_BOTTOM] = 1417;
result[EF_NEW_MOON_SLASH] = 1418;
result[EF_UNK_1419] = 1419;
result[EF_C_AMDARAIS_EFFECT] = 1419;
result[EF_NEW_GRANDCROSS] = 99999999;
result[EF_NEW_COMET_CAST] = 1421;
result[EF_NEW_CART_CANNON_CAST] = 1422;
@ -1623,9 +1623,9 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_RED_WAVE_1] = 1614;
result[EF_RED_WAVE_2] = 1615;
result[EF_RED_WAVE_3] = 1616;
result[EF_UNK_1617] = 1617;
result[EF_UNK_1618] = 1618;
result[EF_UNK_1619] = 1619;
result[EF_BLACKBUBBLE_SMALL] = 1617;
result[EF_BLACKBUBBLE_MIDIUM] = 1618;
result[EF_BLACKBUBBLE_LARGE] = 1619;
result[EF_NEW_WALLOFTHORN_CAST] = 1620;
result[EF_NEW_WALLOFTHORN_CAST_BOTTOM] = 1621;
result[EF_NEW_EARTHGRAVE_BOTTOM] = 1622;
@ -1667,20 +1667,20 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEW_AXEBOOMERANG_CAST] = 1658;
result[EF_NEW_AXEBOOMERANG_CAST_BOTTOM] = 1659;
result[EF_NEW_AXEBOOMERANG_HIT] = 1660;
result[EF_UNK_1661] = 1661;
result[EF_UNK_1662] = 1662;
result[EF_UNK_1663] = 1663;
result[EF_HACKANDSLASH] = 1661;
result[EF_HACKANDSLASH_BOTTOM] = 1662;
result[EF_HACKANDSLASH_HIT] = 1663;
result[EF_NEW_SANCTUARY] = 100;
result[EF_NEW_SPELLFIST_FIRE] = 1665;
result[EF_NEW_SPELLFIST_FIRE_BOTTOM] = 1666;
result[EF_NEW_SPELLFIST_WATER] = 1667;
result[EF_NEW_SPELLFIST_WATER_BOTTOM] = 1668;
result[EF_NEW_SPELLFIST_WIND] = 1669;
result[EF_UNK_1670] = 1670;
result[EF_UNK_1671] = 1671;
result[EF_UNK_1672] = 1672;
result[EF_UNK_1673] = 1673;
result[EF_UNK_1674] = 1674;
result[EF_STORMSLASH_1] = 1670;
result[EF_STORMSLASH_2] = 1671;
result[EF_STORMSLASH_3] = 1672;
result[EF_STORMSLASH_4] = 1673;
result[EF_STORMSLASH_5] = 1674;
result[EF_NEW_CARTBOOST] = 1675;
result[EF_NEW_CARTBOOST_BOTTOM] = 1676;
result[EF_NEW_SAFETYWALL] = 60;
@ -1701,9 +1701,9 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEW_WINDCUTTER_BOTTOM_05] = 1692;
result[EF_NEW_WINDCUTTER_TARGET] = 1693;
result[EF_UNK_1694] = 1694;
result[EF_UNK_1695] = 1695;
result[EF_UNK_1696] = 1696;
result[EF_UNK_1697] = 1697;
result[EF_NEW_SERVANTWEAPON_HIT] = 1695;
result[EF_NEW_SERVANTWEAPON_HIT_BOTTOM] = 1696;
result[EF_NEW_SERVANTWEAPON_SHOOT_BOTTOM] = 1697;
result[EF_NEW_POWERSWING_01] = 1698;
result[EF_NEW_POWERSWING_05] = 1699;
result[EF_NEW_POWERSWING_07] = 1700;
@ -1716,26 +1716,26 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEW_EARTHDRIVE_BOTTOM] = 1707;
result[EF_NEW_EARTHDRIVE_TARGET] = 1708;
result[EF_NEW_EARTHDRIVE_CAST] = 40;
result[EF_UNK_1710] = 1710;
result[EF_UNK_1711] = 1711;
result[EF_UNK_1712] = 1712;
result[EF_UNK_1713] = 1713;
result[EF_UNK_1714] = 1714;
result[EF_UNK_1715] = 1715;
result[EF_UNK_1716] = 1716;
result[EF_UNK_1717] = 1717;
result[EF_UNK_1718] = 1718;
result[EF_UNK_1719] = 1719;
result[EF_UNK_1720] = 1720;
result[EF_UNK_1721] = 1721;
result[EF_SERVANT_SIGN] = 1710;
result[EF_SERVANT_SIGN_DOWN] = 1711;
result[EF_SERVANT_SIGN_DOWN_BOTTOM] = 1712;
result[EF_SERVANT_PHANTOM_DOWN] = 1713;
result[EF_SERVANT_PHANTOM_HIT] = 1714;
result[EF_SERVANT_PHANTOM_HIT_BOTTOM] = 1715;
result[EF_SERVANT_PHANTOM_SUB] = 1716;
result[EF_SERVANT_PHANTOM_SUB_BOTTOM] = 1717;
result[EF_SERVANT_DEMOLITION_COLLECT] = 1718;
result[EF_SERVANT_DEMOLITION_HIT] = 1719;
result[EF_SERVANT_DEMOLITION_LEFTDOWN] = 1720;
result[EF_SERVANT_DEMOLITION_RIGHTDOWN] = 1721;
result[EF_DRAGONIC_AURA] = 1722;
result[EF_DRAGONIC_AURA_BOTTOM] = 1723;
result[EF_DRAGONIC_AURA_HIT] = 1724;
result[EF_DRAGONIC_AURA_HIT_BOTTOM] = 1725;
result[EF_DRAGONIC_AURA_BUFF] = 1726;
result[EF_DRAGONIC_AURA_BUFF_BOTTOM] = 1727;
result[EF_UNK_1728] = 1728;
result[EF_UNK_1729] = 1729;
result[EF_MADNESS_CRUSHER] = 1728;
result[EF_MADNESS_CRUSHER_BOTTOM] = 1729;
result[EF_NEW_AUTOSHADOWSPELL] = 1730;
result[EF_NEW_AUTOSHADOWSPELL_BOTTOM] = 1731;
result[EF_DESTRUCTIVE_HURRICANE] = 1732;
@ -1756,24 +1756,24 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_ROCKDOWN_CAST] = 1747;
result[EF_ROCKDOWN_CAST_BOTTOM] = 1748;
result[EF_ROCKDOWN_HIT] = 1749;
result[EF_UNK_1750] = 1750;
result[EF_UNK_1751] = 1751;
result[EF_VIGOR_CAST] = 1750;
result[EF_VIGOR_BUFF] = 1751;
result[EF_UNK_1752] = 1752;
result[EF_RAIN_OF_CRYSTAL] = 1753;
result[EF_RAIN_OF_CRYSTAL_BOTTOM] = 1754;
result[EF_UNK_1755] = 1755;
result[EF_UNK_1756] = 1756;
result[EF_CRIMSONARROW] = 1756;
result[EF_CRIMSON_ARROW_CAST] = 1757;
result[EF_CRIMSON_ARROW_CAST_BOTTOM] = 1758;
result[EF_CRIMSON_ARROW_HIT] = 1759;
result[EF_UNK_1760] = 1760;
result[EF_VIOLENTQUAKE] = 1760;
result[EF_VIOLENT_QUAKE_CAST] = 1761;
result[EF_VIOLENT_QUAKE_CAST_BOTTOM] = 1762;
result[EF_VIOLENT_QUAKE_HIT] = 1763;
result[EF_UNK_1764] = 1764;
result[EF_UNK_1765] = 1765;
result[EF_UNK_1766] = 1766;
result[EF_UNK_1767] = 1767;
result[EF_NEW_CHARGINGPIERCE_CAST] = 1765;
result[EF_NEW_CHARGINGPIERCE_CAST_BOTTOM] = 1766;
result[EF_NEW_CHARGINGPIERCE_HIT] = 1767;
result[EF_UNK_1768] = 1768;
result[EF_ASTRAL_STRIKE_CAST] = 1769;
result[EF_ASTRAL_STRIKE_CAST_BOTTOM] = 1770;
@ -1833,10 +1833,10 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_ARBITRIUM] = 1824;
result[EF_ARBITRIUM_BOTTOM] = 1825;
result[EF_ARBITRIUM_HIT] = 1826;
result[EF_UNK_1827] = 1827;
result[EF_UNK_1828] = 1828;
result[EF_DANCING_KNIFE_CAST] = 1827;
result[EF_DANCING_KNIFE_CAST_BOTTOM] = 1828;
result[EF_UNK_1829] = 1829;
result[EF_UNK_1830] = 1830;
result[EF_ABYSS_DAGGER_HIT_1830] = 1830;
result[EF_NEW_REPARATIO_CAST] = 1831;
result[EF_NEW_REPARATIO_CAST_BOTTOM] = 1832;
result[EF_NEW_REPARATIO] = 1833;
@ -1868,16 +1868,16 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_CRYSTAL_IMPACT_BUFF] = 1859;
result[EF_RELIGIO] = 1860;
result[EF_RELIGIO_CAST] = 1861;
result[EF_UNK_1862] = 1862;
result[EF_UNK_1863] = 1863;
result[EF_NEW_ENCHANTING_SHADOW] = 1862;
result[EF_NEW_ENCHANTING_SHADOW_BOTTOM] = 1863;
result[EF_FATAL_SHADOW_CROW] = 1864;
result[EF_FATAL_SHADOW_CROW_BOTTOM] = 1865;
result[EF_FATAL_SHADOW_CROW_HIT] = 1866;
result[EF_UNK_1867] = 1867;
result[EF_UNK_1868] = 1868;
result[EF_UNK_1869] = 1869;
result[EF_UNK_1870] = 1870;
result[EF_UNK_1871] = 1871;
result[EF_SHADOW_EXCEED_CAST] = 1868;
result[EF_DROPITEM_BLUE] = 1869;
result[EF_DROPITEM_GREEN] = 1870;
result[EF_DROPITEM_RED] = 1871;
result[EF_NEW_PNEUMA] = 1872;
result[EF_DEEP_BLIND_TRAP_CAST] = 1873;
result[EF_DEEP_BLIND_TRAP] = 1874;
@ -1901,10 +1901,10 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_STRATUM_TREMOR_HIT] = 1892;
result[EF_STRATUM_TREMOR] = 1893;
result[EF_STRATUM_TREMOR_BOTTOM] = 1894;
result[EF_UNK_1895] = 1895;
result[EF_UNK_1896] = 1896;
result[EF_IMPACT_CRATER] = 1895;
result[EF_IMPACT_CRATER_BOTTOM] = 1896;
result[EF_UNK_1897] = 1897;
result[EF_UNK_1898] = 1898;
result[EF_IMPACT_CRATER_HIT] = 1898;
result[EF_WIND_SIGN] = 1899;
result[EF_WIND_SIGN_LOOP] = 1900;
result[EF_ABR_MOTHER_CAST] = 1901;
@ -1956,19 +1956,19 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_NEW_AXE_STOMP_08] = 1947;
result[EF_NEW_AXE_STOMP_09] = 1948;
result[EF_NEW_AXE_STOMP_11] = 1949;
result[EF_UNK_1950] = 1950;
result[EF_CRESCIVEBOLT_CAST] = 1950;
result[EF_UNK_1951] = 1951;
result[EF_UNK_1952] = 1952;
result[EF_UNK_1953] = 1953;
result[EF_UNK_1954] = 1954;
result[EF_UNK_1955] = 1955;
result[EF_CRESCIVEBOLT_HIT] = 1952;
result[EF_SHADOW_STAB] = 1953;
result[EF_ETERNAL_SLASH_HIT] = 1954;
result[EF_SHADOW_STAB_HIT2] = 1955;
result[EF_UNK_1956] = 1956;
result[EF_UNK_1957] = 1957;
result[EF_PNEUMATICUS_PROCELLA_CAST] = 1958;
result[EF_PNEUMATICUS_PROCELLA_RING] = 1959;
result[EF_UNK_1960] = 1960;
result[EF_UNK_1961] = 1961;
result[EF_UNK_1962] = 1962;
result[EF_CALUMITYGALE] = 1960;
result[EF_CALUMITYGALE_CAST] = 1961;
result[EF_CALUMITYGALE_LOOP] = 1962;
result[EF_SINCERE_FAITH_RING] = 1963;
result[EF_SINCERE_FAITH] = 1964;
result[EF_SINCERE_FAITH_BOTTOM] = 1965;
@ -2006,15 +2006,15 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_EXPLOSION_BLASTER_HIT] = 1997;
result[EF_FIRM_FAITH_RING] = 1998;
result[EF_FIRM_FAITH] = 1999;
result[EF_UNK_2000] = 2000;
result[EF_UNK_2001] = 2001;
result[EF_UNK_2002] = 2002;
result[EF_MYSTICSYMPHONY] = 2000;
result[EF_MYSTICSYMPHONY_CAST] = 2001;
result[EF_MYSTICSYMPHONY_NOTE] = 2002;
result[EF_ACTIVITY_BURN] = 2003;
result[EF_ACTIVITY_BURN_CAST] = 2004;
result[EF_ACTIVITY_BURN_CAST_BOTTOM] = 2005;
result[EF_UNK_2006] = 2006;
result[EF_UNK_2007] = 2007;
result[EF_UNK_2008] = 2008;
result[EF_KVASIRSONATA] = 2006;
result[EF_KVASIRSONATA_CAST] = 2007;
result[EF_KVASIRSONATA_CAST_BOTTOM] = 2008;
result[EF_SERPENS_BOTTOM] = 2009;
result[EF_SERPENS_CAST] = 2010;
result[EF_SERPENS_CAST_BOTTOM] = 2011;
@ -2032,7 +2032,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_DILUVIO_HIT] = 2023;
result[EF_DILUVIO_ARMOR] = 2024;
result[EF_SPELL_ENCHANTING] = 2025;
result[EF_UNK_2026] = 60;
result[EF_DIAMOND_STORM] = 60;
result[EF_DIAMOND_STORM_BOTTOM] = 60;
result[EF_DIAMOND_STORM_CAST] = 2028;
result[EF_DIAMOND_STORM_CAST_BOTTOM] = 2029;
@ -2052,11 +2052,11 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_LIGHTNING_LAND_CAST] = 2043;
result[EF_LIGHTNING_LAND_CAST_BOTTOM] = 2044;
result[EF_LIGHTNING_LAND_HIT] = 2045;
result[EF_UNK_2046] = 2046;
result[EF_UNK_2047] = 2047;
result[EF_UNK_2048] = 2048;
result[EF_UNK_2049] = 2049;
result[EF_UNK_2050] = 2050;
result[EF_ROSEBLOSSOM_CAST] = 2046;
result[EF_ROSEBLOSSOM_CAST_BOTTOM] = 2047;
result[EF_ROSEBLOSSOM_HIT] = 2048;
result[EF_ROSEBLOSSOM_ROSE] = 2049;
result[EF_ROSEBLOSSOM_SHOT] = 2050;
result[EF_FIRST_BRAND] = 2051;
result[EF_FIRST_BRAND_AURA] = 2052;
result[EF_FIRST_BRAND_HIT] = 2053;
@ -2071,16 +2071,16 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_SOUND_BLEND_CAST_BOTTOM] = 2062;
result[EF_SOUND_BLEND_RED] = 2063;
result[EF_METALLIC_FURY] = 2064;
result[EF_UNK_2065] = 2065;
result[EF_UNK_2066] = 2066;
result[EF_UNK_2067] = 2067;
result[EF_UNK_2068] = 2068;
result[EF_UNK_2069] = 2069;
result[EF_UNK_2070] = 2070;
result[EF_UNK_2071] = 2071;
result[EF_UNK_2072] = 2072;
result[EF_UNK_2073] = 2073;
result[EF_UNK_2074] = 2074;
result[EF_JAWAII_SERENADE] = 2065;
result[EF_JAWAII_SERENADE_CAST] = 2066;
result[EF_JAWAII_SERENADE_CAST_BOTTOM] = 2067;
result[EF_PRONMARCH] = 2068;
result[EF_PRONMARCH_CAST] = 2069;
result[EF_PRONMARCH_CAST_BOTTOM] = 2070;
result[EF_RHYTHMSHOOTING_CAST] = 2071;
result[EF_RHYTHMSHOOTING_CAST_BOTTOM] = 2072;
result[EF_RHYTHMSHOOTING_HIT] = 2073;
result[EF_RHYTHMSHOOTING_SHOT] = 2074;
result[EF_NIFLHEIM] = 2075;
result[EF_NIFLHEIM_CAST] = 2076;
result[EF_UNK_2077] = 2077;
@ -2120,18 +2120,18 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_ABYSS_STRIKE_HIT_2] = 2111;
result[EF_THIRD_PUNISH] = 2095;
result[EF_THIRD_PUNISH_BOTTOM] = 2096;
result[EF_UNK_2114] = 2114;
result[EF_FRENZY_SHOT] = 2114;
result[EF_FRENZY_SHOT_HIT] = 2115;
result[EF_UNK_2116] = 2116;
result[EF_UNK_2117] = 2117;
result[EF_UNK_2118] = 2118;
result[EF_UNK_2119] = 2119;
result[EF_UNK_2120] = 2120;
result[EF_UNK_2121] = 2121;
result[EF_GEF_NOCTURN] = 2116;
result[EF_GEF_NOCTURN_CAST] = 2117;
result[EF_GEF_NOCTURN_CAST_BOTTOM] = 2118;
result[EF_ROKI_CAPRICCIO] = 2119;
result[EF_ROKI_CAPRICCIO_CAST] = 2120;
result[EF_ROKI_CAPRICCIO_CAST_BOTTOM] = 2121;
result[EF_MUSICAL_INTERLUDE] = 2122;
result[EF_MUSICAL_INTERLUDE_CAST] = 2123;
result[EF_UNK_2124] = 2124;
result[EF_UNK_2125] = 2125;
result[EF_AIN_RHAPSODY] = 2124;
result[EF_AIN_RHAPSODY_CAST] = 2125;
result[EF_ABYSS_SLAYER] = 2126;
result[EF_ABYSS_SLAYER_CAST] = 2127;
result[EF_ABYSS_SLAYER_CAST_BOTTOM] = 2128;
@ -2160,55 +2160,55 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_ELEMENTAL_BUSTER_WIND] = 2151;
result[EF_ELEMENTAL_BUSTER_WIND_BOTTOM] = 2152;
result[EF_ELEMENTAL_BUSTER_WIND_HIT] = 2153;
result[EF_UNK_2154] = 2154;
result[EF_UNLUCKY_RUSH] = 2154;
result[EF_UNLUCKY_RUSH_CAST] = 2155;
result[EF_ABYSS_DAGGER_HIT_3] = 2156;
result[EF_UNK_2157] = 2157;
result[EF_UNK_2158] = 2158;
result[EF_UNK_2159] = 2159;
result[EF_UNK_2160] = 2160;
result[EF_OVERSLASH] = 2157;
result[EF_OVERSLASH_BOTTOM] = 2158;
result[EF_OVERSLASH_CAST] = 2159;
result[EF_OVERSLASH_HIT] = 2160;
result[EF_ADVANCED_PROTECTION] = 2161;
result[EF_ADVANCED_PROTECTION_BOTTOM] = 2162;
result[EF_ADVANCED_PROTECTION_CAST] = 2163;
result[EF_ADVANCED_PROTECTION_CAST_BOTTOM] = 2164;
result[EF_UNK_2165] = 2165;
result[EF_UNK_2166] = 2166;
result[EF_UNK_2167] = 2167;
result[EF_UNK_2168] = 2168;
result[EF_UNK_2169] = 2169;
result[EF_UNK_2170] = 2170;
result[EF_UNK_2171] = 2171;
result[EF_UNK_2172] = 2172;
result[EF_UNK_2173] = 2173;
result[EF_UNK_2174] = 2174;
result[EF_UNK_2175] = 2175;
result[EF_UNK_2176] = 2176;
result[EF_UNK_2177] = 2177;
result[EF_UNK_2178] = 2178;
result[EF_UNK_2179] = 2179;
result[EF_UNK_2180] = 2180;
result[EF_UNK_2181] = 2181;
result[EF_UNK_2182] = 2182;
result[EF_CROSS_RAIN] = 2165;
result[EF_CROSS_RAIN_BOTTOM] = 2166;
result[EF_CROSS_RAIN_CAST] = 2167;
result[EF_CROSS_RAIN_CAST_BOTTOM] = 2168;
result[EF_GUARD_STANCE] = 2169;
result[EF_GUARD_STANCE_CAST] = 2170;
result[EF_GUARD_STANCE_CAST_BOTTOM] = 2171;
result[EF_ATTACK_STANCE] = 2172;
result[EF_ATTACK_STANCE_CAST] = 2173;
result[EF_ATTACK_STANCE_CAST_BOTTOM] = 2174;
result[EF_GRAND_JUDGEMENT] = 2175;
result[EF_GRAND_JUDGEMENT_BOTTOM] = 2176;
result[EF_GRAND_JUDGEMENT_BUFF] = 2177;
result[EF_GRAND_JUDGEMENT_CAST] = 2178;
result[EF_GRAND_JUDGEMENT_CAST_BOTTOM] = 2179;
result[EF_HOLY_SHIELD_CAST] = 2180;
result[EF_HOLY_SHIELD] = 2181;
result[EF_HOLY_SHIELD_LOOP] = 2182;
result[EF_UNK_2183] = 2183;
result[EF_SHIELD_SHOOTING_CAST] = 2184;
result[EF_SHIELD_SHOOTING_HIT] = 2185;
result[EF_THE_W_PROTECTION] = 2186;
result[EF_THE_W_PROTECTION_CAST] = 2187;
result[EF_UNK_2188] = 2188;
result[EF_UNK_2189] = 2189;
result[EF_UNK_2190] = 2190;
result[EF_UNK_2191] = 2191;
result[EF_UNK_2192] = 2192;
result[EF_UNK_2193] = 2193;
result[EF_UNK_2194] = 2194;
result[EF_UNK_2195] = 2195;
result[EF_UNK_2196] = 2196;
result[EF_UNK_2197] = 2197;
result[EF_UNK_2198] = 2198;
result[EF_UNK_2199] = 2199;
result[EF_UNK_2200] = 2200;
result[EF_UNK_2201] = 2201;
result[EF_UNK_2202] = 2202;
result[EF_GUARDIANSHIELD] = 2188;
result[EF_GUARDIANSHIELD_BOTTOM] = 2189;
result[EF_GUARDIANSHIELD_SUB] = 2190;
result[EF_JUDGEMENT_CROSS] = 2191;
result[EF_JUDGEMENT_CROSS_BOTTOM] = 2192;
result[EF_JUDGEMENT_CROSS_CAST] = 2193;
result[EF_JUDGEMENT_CROSS_CAST_BOTTOM] = 2194;
result[EF_JUDGEMENT_CROSS_SHOT] = 2195;
result[EF_REBOUND_SHIELD] = 2196;
result[EF_REBOUND_SHIELD_BOTTOM] = 2197;
result[EF_REBOUND_SHIELD_CAST] = 2198;
result[EF_REBOUND_SHIELD_CAST_BOTTOM] = 2199;
result[EF_ULTIMATESACRIFICE] = 2200;
result[EF_ULTIMATESACRIFICE_BOTTOM] = 2201;
result[EF_ULTIMATESACRIFICE_SHINE] = 2202;
result[EF_UNK_2203] = 2203;
result[EF_ACIDIFIED_ZONE_FIRE_CAST] = 2204;
result[EF_ACIDIFIED_ZONE_FIRE_CAST_BOTTOM] = 2205;
@ -2286,7 +2286,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_UNK_2277] = 99999;
result[EF_UNK_2278] = 99999;
result[EF_THIRD_CONSECRATION_BOTTOM] = 2279;
result[EF_UNK_2280] = 2280;
result[EF_SERVANT_SIGN_BOTTOM] = 2280;
result[EF_UNK_2281] = 2281;
result[EF_UNK_2282] = 2281;
result[EF_UNK_2283] = 2282;
@ -2373,9 +2373,9 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_POK_104] = 99999999;
result[EF_POK_105] = 99999999;
result[EF_UNK_2366] = 2366;
result[EF_UNKNOWN_RING_YELLOW] = 40;
result[EF_UNKNOWN_SPELL] = 100;
result[EF_UNKNOWN_RING_WHITE] = 40;
result[EF_BEGINSPELL_RING_YELLOW] = 40;
result[EF_BEGINSPELL_SWIRL] = 100;
result[EF_BEGINSPELL_RING_WHITE] = 40;
result[EF_UNK_2370] = 2370;
result[EF_TETRA_VORTEX_WATER_SUB_2] = 2371;
result[EF_TETRA_VORTEX_EARTH_SUB_2] = 2372;
@ -2400,7 +2400,7 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_UNK_2391] = 999999;
result[EF_UNK_2392] = 999999;
result[EF_UNK_2393] = 999999;
result[EF_UNK_2394] = 2394;
result[EF_SERPENT_SHADOW] = 2394;
result[EF_RUNE_ACTIVE_FINISH] = 2395;
result[EF_RUNESET_ACTIVE] = 2396;
result[EF_RUNESET_UPGRADE_SUCCESS] = 2397;
@ -2428,10 +2428,10 @@ static std::unordered_map<int, int> BuildLifetimes() {
result[EF_RG_COIN_BLUE] = 3000;
result[EF_RG_COIN_BLUE_2] = 3000;
result[EF_UNK_2438] = 2438;
result[EF_UNK_2439] = 300;
result[EF_CRUEL_BITE_LINE] = 300;
result[EF_UNK_2440] = 99999999;
result[EF_UNK_2441] = 300;
result[EF_UNK_2442] = 300;
result[EF_QUILL_SPEAR_LINE] = 300;
result[EF_UNK_2443] = 99999999;
result[EF_UNK_2444] = 500;
result[EF_UNK_2445] = 2435;

View file

@ -1135,7 +1135,7 @@ enum RagEffectID : std::int32_t {
EF_SU_POWEROFFLOCK = 1127,
EF_UNK_1128 = 1128,
EF_SU_SVG_SPIRIT = 1129,
EF_UNK_1130 = 1130,
EF_BAKURETSU_HADOU = 1130,
EF_SU_SPIRIT_OF_LIFE = 1131,
EF_SU_STOOP = 1132,
EF_FIREDANCE = 1133,
@ -1152,20 +1152,20 @@ enum RagEffectID : std::int32_t {
EF_UNK_1144 = 1144,
EF_RL_HAMMER_OF_GOD = 1145,
EF_UNK_1146 = 1146,
EF_UNK_1147 = 1147,
EF_POPCORN = 1147,
EF_RL_R_TRIP = 1148,
EF_IMMUNE_PROPERTY = 1149,
EF_MOVE_COORDINATE = 1150,
EF_UNK_1151 = 1151,
EF_UNK_1152 = 1152,
EF_UNK_1153 = 1153,
EF_UNK_1154 = 1154,
EF_UNK_1155 = 1155,
EF_UNK_1156 = 1156,
EF_UNK_1157 = 1157,
EF_UNK_1158 = 1158,
EF_UNK_1159 = 1159,
EF_UNK_1160 = 1160,
EF_IMMUNE_PROPERTY_NOTHING = 1151,
EF_IMMUNE_PROPERTY_WATER = 1152,
EF_IMMUNE_PROPERTY_GROUND = 1153,
EF_IMMUNE_PROPERTY_FIRE = 1154,
EF_IMMUNE_PROPERTY_WIND = 1155,
EF_IMMUNE_PROPERTY_POISON = 1156,
EF_IMMUNE_PROPERTY_SAINT = 1157,
EF_IMMUNE_PROPERTY_DARKNESS = 1158,
EF_IMMUNE_PROPERTY_TELEKINESIS = 1159,
EF_IMMUNE_PROPERTY_UNDEAD = 1160,
EF_QUAGMIRE_VISUAL = 1161,
EF_LORD_OF_VERMILLION_VISUAL = 1162,
EF_METEOR_STORM_VISUAL = 1163,
@ -1194,10 +1194,10 @@ enum RagEffectID : std::int32_t {
EF_UNK_1186 = 1186,
EF_UNK_1187 = 1187,
EF_UNK_1188 = 1188,
EF_UNK_1189 = 1189,
EF_UNK_1190 = 1190,
EF_DROPITEM_YELLOW = 1189,
EF_DROPITEM_PURPLE = 1190,
EF_UNK_1191 = 1191,
EF_UNK_1192 = 1192,
EF_RANDOM_OPT_YELLOW = 1192,
EF_UNK_1193 = 1193,
EF_UNK_1194 = 1194,
EF_AUTOSHADOWSPELL_ACTIVE = 1195,
@ -1205,7 +1205,7 @@ enum RagEffectID : std::int32_t {
EF_LIGHTSPHERE_SUN = 1197,
EF_LIGHTSPHERE_MOON = 1198,
EF_LIGHTSPHERE_STAR = 1199,
EF_UNK_1200 = 1200,
EF_THUNDER_PLAZMA_BLAST = 1200,
EF_UNK_1201 = 1201,
EF_NOVAEXPLOSING = 1202,
EF_STAR_EMPEROR = 1203,
@ -1217,8 +1217,8 @@ enum RagEffectID : std::int32_t {
EF_BLINK_BODY = 1209,
EF_LINELINK5 = 1210,
EF_UNK_1211 = 1211,
EF_UNK_1212 = 1212,
EF_UNK_1213 = 1213,
EF_SUBJECT_AURA_1212 = 1212,
EF_SUBJECT_AURA_1213 = 1213,
EF_UNK_1214 = 1214,
EF_UNK_1215 = 1215,
EF_UNK_1216 = 1216,
@ -1237,12 +1237,12 @@ enum RagEffectID : std::int32_t {
EF_NEWMOON_KICK = 1229,
EF_FULLMOON_KICK = 1230,
EF_BOOK_OF_DIMENSION = 1231,
EF_UNK_1232 = 1232,
EF_BOOK_OF_CREATINGSTAR = 1232,
EF_CURSE_EXPLOSION = 1233,
EF_SOUL_REAPER = 1234,
EF_UNK_1235 = 1235,
EF_UNK_1236 = 1236,
EF_UNK_1237 = 1237,
EF_SOUL_SHADOW = 1235,
EF_SOUL_FAIRY = 1236,
EF_SOUL_FALCON = 1237,
EF_SOUL_CURSE = 1238,
EF_PROMINENCE_KICK = 1239,
EF_SOUL_REAPER_COLLECT = 1240,
@ -1382,7 +1382,7 @@ enum RagEffectID : std::int32_t {
EF_NEW_BANISHINGPOINT_05 = 1374,
EF_NEW_BANISHINGPOINT_07 = 1375,
EF_NEW_BANISHINGPOINT_11 = 1376,
EF_UNK_1377 = 1377,
EF_VALKYRIE_WING = 1377,
EF_NEW_DRAGONBREATH_BOMB = 1378,
EF_NEW_DRAGONBREATH_BOMB_BOTTOM = 1379,
EF_NEW_DRAGONBREATH_01 = 1380,
@ -1424,7 +1424,7 @@ enum RagEffectID : std::int32_t {
EF_NEW_COMET_SUB_EXP = 1416,
EF_NEW_COMET_SUB_EXP_BOTTOM = 1417,
EF_NEW_MOON_SLASH = 1418,
EF_UNK_1419 = 1419,
EF_C_AMDARAIS_EFFECT = 1419,
EF_NEW_GRANDCROSS = 1420,
EF_NEW_COMET_CAST = 1421,
EF_NEW_CART_CANNON_CAST = 1422,
@ -1622,9 +1622,9 @@ enum RagEffectID : std::int32_t {
EF_RED_WAVE_1 = 1614,
EF_RED_WAVE_2 = 1615,
EF_RED_WAVE_3 = 1616,
EF_UNK_1617 = 1617,
EF_UNK_1618 = 1618,
EF_UNK_1619 = 1619,
EF_BLACKBUBBLE_SMALL = 1617,
EF_BLACKBUBBLE_MIDIUM = 1618,
EF_BLACKBUBBLE_LARGE = 1619,
EF_NEW_WALLOFTHORN_CAST = 1620,
EF_NEW_WALLOFTHORN_CAST_BOTTOM = 1621,
EF_NEW_EARTHGRAVE_BOTTOM = 1622,
@ -1666,20 +1666,20 @@ enum RagEffectID : std::int32_t {
EF_NEW_AXEBOOMERANG_CAST = 1658,
EF_NEW_AXEBOOMERANG_CAST_BOTTOM = 1659,
EF_NEW_AXEBOOMERANG_HIT = 1660,
EF_UNK_1661 = 1661,
EF_UNK_1662 = 1662,
EF_UNK_1663 = 1663,
EF_HACKANDSLASH = 1661,
EF_HACKANDSLASH_BOTTOM = 1662,
EF_HACKANDSLASH_HIT = 1663,
EF_NEW_SANCTUARY = 1664,
EF_NEW_SPELLFIST_FIRE = 1665,
EF_NEW_SPELLFIST_FIRE_BOTTOM = 1666,
EF_NEW_SPELLFIST_WATER = 1667,
EF_NEW_SPELLFIST_WATER_BOTTOM = 1668,
EF_NEW_SPELLFIST_WIND = 1669,
EF_UNK_1670 = 1670,
EF_UNK_1671 = 1671,
EF_UNK_1672 = 1672,
EF_UNK_1673 = 1673,
EF_UNK_1674 = 1674,
EF_STORMSLASH_1 = 1670,
EF_STORMSLASH_2 = 1671,
EF_STORMSLASH_3 = 1672,
EF_STORMSLASH_4 = 1673,
EF_STORMSLASH_5 = 1674,
EF_NEW_CARTBOOST = 1675,
EF_NEW_CARTBOOST_BOTTOM = 1676,
EF_NEW_SAFETYWALL = 1677,
@ -1700,9 +1700,9 @@ enum RagEffectID : std::int32_t {
EF_NEW_WINDCUTTER_BOTTOM_05 = 1692,
EF_NEW_WINDCUTTER_TARGET = 1693,
EF_UNK_1694 = 1694,
EF_UNK_1695 = 1695,
EF_UNK_1696 = 1696,
EF_UNK_1697 = 1697,
EF_NEW_SERVANTWEAPON_HIT = 1695,
EF_NEW_SERVANTWEAPON_HIT_BOTTOM = 1696,
EF_NEW_SERVANTWEAPON_SHOOT_BOTTOM = 1697,
EF_NEW_POWERSWING_01 = 1698,
EF_NEW_POWERSWING_05 = 1699,
EF_NEW_POWERSWING_07 = 1700,
@ -1715,26 +1715,26 @@ enum RagEffectID : std::int32_t {
EF_NEW_EARTHDRIVE_BOTTOM = 1707,
EF_NEW_EARTHDRIVE_TARGET = 1708,
EF_NEW_EARTHDRIVE_CAST = 1709,
EF_UNK_1710 = 1710,
EF_UNK_1711 = 1711,
EF_UNK_1712 = 1712,
EF_UNK_1713 = 1713,
EF_UNK_1714 = 1714,
EF_UNK_1715 = 1715,
EF_UNK_1716 = 1716,
EF_UNK_1717 = 1717,
EF_UNK_1718 = 1718,
EF_UNK_1719 = 1719,
EF_UNK_1720 = 1720,
EF_UNK_1721 = 1721,
EF_SERVANT_SIGN = 1710,
EF_SERVANT_SIGN_DOWN = 1711,
EF_SERVANT_SIGN_DOWN_BOTTOM = 1712,
EF_SERVANT_PHANTOM_DOWN = 1713,
EF_SERVANT_PHANTOM_HIT = 1714,
EF_SERVANT_PHANTOM_HIT_BOTTOM = 1715,
EF_SERVANT_PHANTOM_SUB = 1716,
EF_SERVANT_PHANTOM_SUB_BOTTOM = 1717,
EF_SERVANT_DEMOLITION_COLLECT = 1718,
EF_SERVANT_DEMOLITION_HIT = 1719,
EF_SERVANT_DEMOLITION_LEFTDOWN = 1720,
EF_SERVANT_DEMOLITION_RIGHTDOWN = 1721,
EF_DRAGONIC_AURA = 1722,
EF_DRAGONIC_AURA_BOTTOM = 1723,
EF_DRAGONIC_AURA_HIT = 1724,
EF_DRAGONIC_AURA_HIT_BOTTOM = 1725,
EF_DRAGONIC_AURA_BUFF = 1726,
EF_DRAGONIC_AURA_BUFF_BOTTOM = 1727,
EF_UNK_1728 = 1728,
EF_UNK_1729 = 1729,
EF_MADNESS_CRUSHER = 1728,
EF_MADNESS_CRUSHER_BOTTOM = 1729,
EF_NEW_AUTOSHADOWSPELL = 1730,
EF_NEW_AUTOSHADOWSPELL_BOTTOM = 1731,
EF_DESTRUCTIVE_HURRICANE = 1732,
@ -1755,24 +1755,24 @@ enum RagEffectID : std::int32_t {
EF_ROCKDOWN_CAST = 1747,
EF_ROCKDOWN_CAST_BOTTOM = 1748,
EF_ROCKDOWN_HIT = 1749,
EF_UNK_1750 = 1750,
EF_UNK_1751 = 1751,
EF_VIGOR_CAST = 1750,
EF_VIGOR_BUFF = 1751,
EF_UNK_1752 = 1752,
EF_RAIN_OF_CRYSTAL = 1753,
EF_RAIN_OF_CRYSTAL_BOTTOM = 1754,
EF_UNK_1755 = 1755,
EF_UNK_1756 = 1756,
EF_CRIMSONARROW = 1756,
EF_CRIMSON_ARROW_CAST = 1757,
EF_CRIMSON_ARROW_CAST_BOTTOM = 1758,
EF_CRIMSON_ARROW_HIT = 1759,
EF_UNK_1760 = 1760,
EF_VIOLENTQUAKE = 1760,
EF_VIOLENT_QUAKE_CAST = 1761,
EF_VIOLENT_QUAKE_CAST_BOTTOM = 1762,
EF_VIOLENT_QUAKE_HIT = 1763,
EF_UNK_1764 = 1764,
EF_UNK_1765 = 1765,
EF_UNK_1766 = 1766,
EF_UNK_1767 = 1767,
EF_NEW_CHARGINGPIERCE_CAST = 1765,
EF_NEW_CHARGINGPIERCE_CAST_BOTTOM = 1766,
EF_NEW_CHARGINGPIERCE_HIT = 1767,
EF_UNK_1768 = 1768,
EF_ASTRAL_STRIKE_CAST = 1769,
EF_ASTRAL_STRIKE_CAST_BOTTOM = 1770,
@ -1832,10 +1832,10 @@ enum RagEffectID : std::int32_t {
EF_ARBITRIUM = 1824,
EF_ARBITRIUM_BOTTOM = 1825,
EF_ARBITRIUM_HIT = 1826,
EF_UNK_1827 = 1827,
EF_UNK_1828 = 1828,
EF_DANCING_KNIFE_CAST = 1827,
EF_DANCING_KNIFE_CAST_BOTTOM = 1828,
EF_UNK_1829 = 1829,
EF_UNK_1830 = 1830,
EF_ABYSS_DAGGER_HIT_1830 = 1830,
EF_NEW_REPARATIO_CAST = 1831,
EF_NEW_REPARATIO_CAST_BOTTOM = 1832,
EF_NEW_REPARATIO = 1833,
@ -1867,16 +1867,16 @@ enum RagEffectID : std::int32_t {
EF_CRYSTAL_IMPACT_BUFF = 1859,
EF_RELIGIO = 1860,
EF_RELIGIO_CAST = 1861,
EF_UNK_1862 = 1862,
EF_UNK_1863 = 1863,
EF_NEW_ENCHANTING_SHADOW = 1862,
EF_NEW_ENCHANTING_SHADOW_BOTTOM = 1863,
EF_FATAL_SHADOW_CROW = 1864,
EF_FATAL_SHADOW_CROW_BOTTOM = 1865,
EF_FATAL_SHADOW_CROW_HIT = 1866,
EF_UNK_1867 = 1867,
EF_UNK_1868 = 1868,
EF_UNK_1869 = 1869,
EF_UNK_1870 = 1870,
EF_UNK_1871 = 1871,
EF_SHADOW_EXCEED_CAST = 1868,
EF_DROPITEM_BLUE = 1869,
EF_DROPITEM_GREEN = 1870,
EF_DROPITEM_RED = 1871,
EF_NEW_PNEUMA = 1872,
EF_DEEP_BLIND_TRAP_CAST = 1873,
EF_DEEP_BLIND_TRAP = 1874,
@ -1900,10 +1900,10 @@ enum RagEffectID : std::int32_t {
EF_STRATUM_TREMOR_HIT = 1892,
EF_STRATUM_TREMOR = 1893,
EF_STRATUM_TREMOR_BOTTOM = 1894,
EF_UNK_1895 = 1895,
EF_UNK_1896 = 1896,
EF_IMPACT_CRATER = 1895,
EF_IMPACT_CRATER_BOTTOM = 1896,
EF_UNK_1897 = 1897,
EF_UNK_1898 = 1898,
EF_IMPACT_CRATER_HIT = 1898,
EF_WIND_SIGN = 1899,
EF_WIND_SIGN_LOOP = 1900,
EF_ABR_MOTHER_CAST = 1901,
@ -1955,19 +1955,19 @@ enum RagEffectID : std::int32_t {
EF_NEW_AXE_STOMP_08 = 1947,
EF_NEW_AXE_STOMP_09 = 1948,
EF_NEW_AXE_STOMP_11 = 1949,
EF_UNK_1950 = 1950,
EF_CRESCIVEBOLT_CAST = 1950,
EF_UNK_1951 = 1951,
EF_UNK_1952 = 1952,
EF_UNK_1953 = 1953,
EF_UNK_1954 = 1954,
EF_UNK_1955 = 1955,
EF_CRESCIVEBOLT_HIT = 1952,
EF_SHADOW_STAB = 1953,
EF_ETERNAL_SLASH_HIT = 1954,
EF_SHADOW_STAB_HIT2 = 1955,
EF_UNK_1956 = 1956,
EF_UNK_1957 = 1957,
EF_PNEUMATICUS_PROCELLA_CAST = 1958,
EF_PNEUMATICUS_PROCELLA_RING = 1959,
EF_UNK_1960 = 1960,
EF_UNK_1961 = 1961,
EF_UNK_1962 = 1962,
EF_CALUMITYGALE = 1960,
EF_CALUMITYGALE_CAST = 1961,
EF_CALUMITYGALE_LOOP = 1962,
EF_SINCERE_FAITH_RING = 1963,
EF_SINCERE_FAITH = 1964,
EF_SINCERE_FAITH_BOTTOM = 1965,
@ -2005,15 +2005,15 @@ enum RagEffectID : std::int32_t {
EF_EXPLOSION_BLASTER_HIT = 1997,
EF_FIRM_FAITH_RING = 1998,
EF_FIRM_FAITH = 1999,
EF_UNK_2000 = 2000,
EF_UNK_2001 = 2001,
EF_UNK_2002 = 2002,
EF_MYSTICSYMPHONY = 2000,
EF_MYSTICSYMPHONY_CAST = 2001,
EF_MYSTICSYMPHONY_NOTE = 2002,
EF_ACTIVITY_BURN = 2003,
EF_ACTIVITY_BURN_CAST = 2004,
EF_ACTIVITY_BURN_CAST_BOTTOM = 2005,
EF_UNK_2006 = 2006,
EF_UNK_2007 = 2007,
EF_UNK_2008 = 2008,
EF_KVASIRSONATA = 2006,
EF_KVASIRSONATA_CAST = 2007,
EF_KVASIRSONATA_CAST_BOTTOM = 2008,
EF_SERPENS_BOTTOM = 2009,
EF_SERPENS_CAST = 2010,
EF_SERPENS_CAST_BOTTOM = 2011,
@ -2031,7 +2031,7 @@ enum RagEffectID : std::int32_t {
EF_DILUVIO_HIT = 2023,
EF_DILUVIO_ARMOR = 2024,
EF_SPELL_ENCHANTING = 2025,
EF_UNK_2026 = 2026,
EF_DIAMOND_STORM = 2026,
EF_DIAMOND_STORM_BOTTOM = 2027,
EF_DIAMOND_STORM_CAST = 2028,
EF_DIAMOND_STORM_CAST_BOTTOM = 2029,
@ -2051,11 +2051,11 @@ enum RagEffectID : std::int32_t {
EF_LIGHTNING_LAND_CAST = 2043,
EF_LIGHTNING_LAND_CAST_BOTTOM = 2044,
EF_LIGHTNING_LAND_HIT = 2045,
EF_UNK_2046 = 2046,
EF_UNK_2047 = 2047,
EF_UNK_2048 = 2048,
EF_UNK_2049 = 2049,
EF_UNK_2050 = 2050,
EF_ROSEBLOSSOM_CAST = 2046,
EF_ROSEBLOSSOM_CAST_BOTTOM = 2047,
EF_ROSEBLOSSOM_HIT = 2048,
EF_ROSEBLOSSOM_ROSE = 2049,
EF_ROSEBLOSSOM_SHOT = 2050,
EF_FIRST_BRAND = 2051,
EF_FIRST_BRAND_AURA = 2052,
EF_FIRST_BRAND_HIT = 2053,
@ -2070,16 +2070,16 @@ enum RagEffectID : std::int32_t {
EF_SOUND_BLEND_CAST_BOTTOM = 2062,
EF_SOUND_BLEND_RED = 2063,
EF_METALLIC_FURY = 2064,
EF_UNK_2065 = 2065,
EF_UNK_2066 = 2066,
EF_UNK_2067 = 2067,
EF_UNK_2068 = 2068,
EF_UNK_2069 = 2069,
EF_UNK_2070 = 2070,
EF_UNK_2071 = 2071,
EF_UNK_2072 = 2072,
EF_UNK_2073 = 2073,
EF_UNK_2074 = 2074,
EF_JAWAII_SERENADE = 2065,
EF_JAWAII_SERENADE_CAST = 2066,
EF_JAWAII_SERENADE_CAST_BOTTOM = 2067,
EF_PRONMARCH = 2068,
EF_PRONMARCH_CAST = 2069,
EF_PRONMARCH_CAST_BOTTOM = 2070,
EF_RHYTHMSHOOTING_CAST = 2071,
EF_RHYTHMSHOOTING_CAST_BOTTOM = 2072,
EF_RHYTHMSHOOTING_HIT = 2073,
EF_RHYTHMSHOOTING_SHOT = 2074,
EF_NIFLHEIM = 2075,
EF_NIFLHEIM_CAST = 2076,
EF_UNK_2077 = 2077,
@ -2119,18 +2119,18 @@ enum RagEffectID : std::int32_t {
EF_ABYSS_STRIKE_HIT_2 = 2111,
EF_THIRD_PUNISH = 2112,
EF_THIRD_PUNISH_BOTTOM = 2113,
EF_UNK_2114 = 2114,
EF_FRENZY_SHOT = 2114,
EF_FRENZY_SHOT_HIT = 2115,
EF_UNK_2116 = 2116,
EF_UNK_2117 = 2117,
EF_UNK_2118 = 2118,
EF_UNK_2119 = 2119,
EF_UNK_2120 = 2120,
EF_UNK_2121 = 2121,
EF_GEF_NOCTURN = 2116,
EF_GEF_NOCTURN_CAST = 2117,
EF_GEF_NOCTURN_CAST_BOTTOM = 2118,
EF_ROKI_CAPRICCIO = 2119,
EF_ROKI_CAPRICCIO_CAST = 2120,
EF_ROKI_CAPRICCIO_CAST_BOTTOM = 2121,
EF_MUSICAL_INTERLUDE = 2122,
EF_MUSICAL_INTERLUDE_CAST = 2123,
EF_UNK_2124 = 2124,
EF_UNK_2125 = 2125,
EF_AIN_RHAPSODY = 2124,
EF_AIN_RHAPSODY_CAST = 2125,
EF_ABYSS_SLAYER = 2126,
EF_ABYSS_SLAYER_CAST = 2127,
EF_ABYSS_SLAYER_CAST_BOTTOM = 2128,
@ -2159,55 +2159,55 @@ enum RagEffectID : std::int32_t {
EF_ELEMENTAL_BUSTER_WIND = 2151,
EF_ELEMENTAL_BUSTER_WIND_BOTTOM = 2152,
EF_ELEMENTAL_BUSTER_WIND_HIT = 2153,
EF_UNK_2154 = 2154,
EF_UNLUCKY_RUSH = 2154,
EF_UNLUCKY_RUSH_CAST = 2155,
EF_ABYSS_DAGGER_HIT_3 = 2156,
EF_UNK_2157 = 2157,
EF_UNK_2158 = 2158,
EF_UNK_2159 = 2159,
EF_UNK_2160 = 2160,
EF_OVERSLASH = 2157,
EF_OVERSLASH_BOTTOM = 2158,
EF_OVERSLASH_CAST = 2159,
EF_OVERSLASH_HIT = 2160,
EF_ADVANCED_PROTECTION = 2161,
EF_ADVANCED_PROTECTION_BOTTOM = 2162,
EF_ADVANCED_PROTECTION_CAST = 2163,
EF_ADVANCED_PROTECTION_CAST_BOTTOM = 2164,
EF_UNK_2165 = 2165,
EF_UNK_2166 = 2166,
EF_UNK_2167 = 2167,
EF_UNK_2168 = 2168,
EF_UNK_2169 = 2169,
EF_UNK_2170 = 2170,
EF_UNK_2171 = 2171,
EF_UNK_2172 = 2172,
EF_UNK_2173 = 2173,
EF_UNK_2174 = 2174,
EF_UNK_2175 = 2175,
EF_UNK_2176 = 2176,
EF_UNK_2177 = 2177,
EF_UNK_2178 = 2178,
EF_UNK_2179 = 2179,
EF_UNK_2180 = 2180,
EF_UNK_2181 = 2181,
EF_UNK_2182 = 2182,
EF_CROSS_RAIN = 2165,
EF_CROSS_RAIN_BOTTOM = 2166,
EF_CROSS_RAIN_CAST = 2167,
EF_CROSS_RAIN_CAST_BOTTOM = 2168,
EF_GUARD_STANCE = 2169,
EF_GUARD_STANCE_CAST = 2170,
EF_GUARD_STANCE_CAST_BOTTOM = 2171,
EF_ATTACK_STANCE = 2172,
EF_ATTACK_STANCE_CAST = 2173,
EF_ATTACK_STANCE_CAST_BOTTOM = 2174,
EF_GRAND_JUDGEMENT = 2175,
EF_GRAND_JUDGEMENT_BOTTOM = 2176,
EF_GRAND_JUDGEMENT_BUFF = 2177,
EF_GRAND_JUDGEMENT_CAST = 2178,
EF_GRAND_JUDGEMENT_CAST_BOTTOM = 2179,
EF_HOLY_SHIELD_CAST = 2180,
EF_HOLY_SHIELD = 2181,
EF_HOLY_SHIELD_LOOP = 2182,
EF_UNK_2183 = 2183,
EF_SHIELD_SHOOTING_CAST = 2184,
EF_SHIELD_SHOOTING_HIT = 2185,
EF_THE_W_PROTECTION = 2186,
EF_THE_W_PROTECTION_CAST = 2187,
EF_UNK_2188 = 2188,
EF_UNK_2189 = 2189,
EF_UNK_2190 = 2190,
EF_UNK_2191 = 2191,
EF_UNK_2192 = 2192,
EF_UNK_2193 = 2193,
EF_UNK_2194 = 2194,
EF_UNK_2195 = 2195,
EF_UNK_2196 = 2196,
EF_UNK_2197 = 2197,
EF_UNK_2198 = 2198,
EF_UNK_2199 = 2199,
EF_UNK_2200 = 2200,
EF_UNK_2201 = 2201,
EF_UNK_2202 = 2202,
EF_GUARDIANSHIELD = 2188,
EF_GUARDIANSHIELD_BOTTOM = 2189,
EF_GUARDIANSHIELD_SUB = 2190,
EF_JUDGEMENT_CROSS = 2191,
EF_JUDGEMENT_CROSS_BOTTOM = 2192,
EF_JUDGEMENT_CROSS_CAST = 2193,
EF_JUDGEMENT_CROSS_CAST_BOTTOM = 2194,
EF_JUDGEMENT_CROSS_SHOT = 2195,
EF_REBOUND_SHIELD = 2196,
EF_REBOUND_SHIELD_BOTTOM = 2197,
EF_REBOUND_SHIELD_CAST = 2198,
EF_REBOUND_SHIELD_CAST_BOTTOM = 2199,
EF_ULTIMATESACRIFICE = 2200,
EF_ULTIMATESACRIFICE_BOTTOM = 2201,
EF_ULTIMATESACRIFICE_SHINE = 2202,
EF_UNK_2203 = 2203,
EF_ACIDIFIED_ZONE_FIRE_CAST = 2204,
EF_ACIDIFIED_ZONE_FIRE_CAST_BOTTOM = 2205,
@ -2285,7 +2285,7 @@ enum RagEffectID : std::int32_t {
EF_UNK_2277 = 2277,
EF_UNK_2278 = 2278,
EF_THIRD_CONSECRATION_BOTTOM = 2279,
EF_UNK_2280 = 2280,
EF_SERVANT_SIGN_BOTTOM = 2280,
EF_UNK_2281 = 2281,
EF_UNK_2282 = 2282,
EF_UNK_2283 = 2283,
@ -2372,9 +2372,9 @@ enum RagEffectID : std::int32_t {
EF_POK_104 = 2364,
EF_POK_105 = 2365,
EF_UNK_2366 = 2366,
EF_UNKNOWN_RING_YELLOW = 2367,
EF_UNKNOWN_SPELL = 2368,
EF_UNKNOWN_RING_WHITE = 2369,
EF_BEGINSPELL_RING_YELLOW = 2367,
EF_BEGINSPELL_SWIRL = 2368,
EF_BEGINSPELL_RING_WHITE = 2369,
EF_UNK_2370 = 2370,
EF_TETRA_VORTEX_WATER_SUB_2 = 2371,
EF_TETRA_VORTEX_EARTH_SUB_2 = 2372,
@ -2399,7 +2399,7 @@ enum RagEffectID : std::int32_t {
EF_UNK_2391 = 2391,
EF_UNK_2392 = 2392,
EF_UNK_2393 = 2393,
EF_UNK_2394 = 2394,
EF_SERPENT_SHADOW = 2394,
EF_RUNE_ACTIVE_FINISH = 2395,
EF_RUNESET_ACTIVE = 2396,
EF_RUNESET_UPGRADE_SUCCESS = 2397,
@ -2425,18 +2425,18 @@ enum RagEffectID : std::int32_t {
EF_ABC_CROSSIMPACT_LINE = 2417,
EF_UNK_2418 = 2418,
EF_UNK_2419 = 2419,
EF_UNK_2420 = 2420,
EF_VIOLEN_HIT = 2420,
EF_RUNE_SLOT_SMALL = 2421,
EF_RUNE_SLOT_BIG = 2422,
EF_UNK_2423 = 2423,
EF_UNK_2424 = 2424,
EF_C_AURA_OF_GHOST_S = 2424,
EF_WH_WILD_WALK = 2425,
EF_FORCE_ANIM_27 = 2426,
EF_HEAL_BLUE_2 = 2427,
EF_UNK_2428 = 2428,
EF_UNK_2429 = 2429,
EF_UNK_2430 = 2430,
EF_UNK_2431 = 2431,
EF_ATQUE_POENITENTIA = 2428,
EF_PERM_FROST_OBLIVION = 2429,
EF_C_GUIDE_OF_DEAD_TEXT = 2430,
EF_C_MEDJED_TEXT = 2431,
EF_UNK_2432 = 2432,
EF_UNK_2433 = 2433,
EF_UNK_2434 = 2434,
@ -2444,10 +2444,10 @@ enum RagEffectID : std::int32_t {
EF_RG_COIN_BLUE = 2436,
EF_RG_COIN_BLUE_2 = 2437,
EF_UNK_2438 = 2438,
EF_UNK_2439 = 2439,
EF_CRUEL_BITE_LINE = 2439,
EF_UNK_2440 = 2440,
EF_UNK_2441 = 2441,
EF_UNK_2442 = 2442,
EF_QUILL_SPEAR_LINE = 2442,
EF_UNK_2443 = 2443,
EF_UNK_2444 = 2444,
EF_UNK_2445 = 2445,
@ -2463,7 +2463,7 @@ enum RagEffectID : std::int32_t {
EF_UNK_2455 = 2455,
EF_UNK_2456 = 2456,
EF_UNK_2457 = 2457,
EF_UNK_2458 = 2458,
EF_S_BEELZEBUB_WING = 2458,
EF_UNK_2460 = 2460,
EF_UNK_2461 = 2461,
EF_UNK_2462 = 2462,
@ -3154,7 +3154,7 @@ enum efst_type : std::int16_t {
EFST_REUSE_LIMIT_ECL,
EFST_M_LIFEPOTION,
EFST_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT,
EFST_UNKNOWN_NAME,
EFST_SHOW_HP,
EFST_ON_PUSH_CART,
EFST_HAT_EFFECT,
EFST_FLOWER_LEAF,

View file

@ -20,7 +20,7 @@ public:
void AddBolt(int tilt);
/* 00CC */ short angle;
/* 00CE */ unsigned char unknown_00CE[2];
/* 00CE */ unsigned char padding_00CE[2];
/* 00D0 */ vector3d path[2];
/* 00E8 */ vector3d lastEdge[2];
/* 0100 */ int tick;

View file

@ -54,10 +54,10 @@ public:
/* 0158 */ float particleSpeed;
/* 015C */ bool depth;
/* 015D */ bool billboard;
/* 015E */ unsigned char unknown_015E[2];
/* 015E */ unsigned char padding_015E[2];
/* 0160 */ float rotation[3];
/* 016C */ unsigned char fixedAlpha;
/* 016D */ unsigned char unknown_016D[3];
/* 016D */ unsigned char padding_016D[3];
/* 0170 */ std::vector<CParticle*> particles;
/* 017C */ ParticlePool pool;
/* 0188 */ int duration;

View file

@ -16,7 +16,7 @@ public:
void Close() override;
bool IsAlive() override;
/* 00CC */ unsigned char unknown_00CC[0x38];
/* 00CC */ unsigned char padding_00CC[0x38];
/* 0104 */ int angle;
/* 0108 */ std::vector<CParticle*> particles;
};

View file

@ -22,14 +22,14 @@ public:
void AddClouds(int layer);
/* 00CC */ EffectPoint lastPoints[2];
/* 00E4 */ EffectPoint unknown_00E4[2];
/* 00E4 */ EffectPoint padding_00E4[2];
/* 00FC */ std::vector<CParticle*> floors;
/* 0108 */ std::vector<CParticle*> particles;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CMagicFloorEffect, lastPoints) == 0xCC);
static_assert(offsetof(CMagicFloorEffect, unknown_00E4) == 0xE4);
static_assert(offsetof(CMagicFloorEffect, padding_00E4) == 0xE4);
static_assert(offsetof(CMagicFloorEffect, floors) == 0xFC);
static_assert(offsetof(CMagicFloorEffect, particles) == 0x108);
static_assert(sizeof(CMagicFloorEffect) == 0x114);

View file

@ -12,7 +12,7 @@ public:
void SendMsg(CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m) override;
/* 0138 */ float startFrame;
/* 013C */ int unknown_013C;
/* 013C */ int padding_013C;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -1853,27 +1853,27 @@ bool CDropItemEffect::IsAlive() {
// FUNCTION: fn_07310
void CDropItemEffect::OpenEmitters() {
switch (this->id) {
case EF_UNK_1190:
case EF_DROPITEM_PURPLE:
AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_purple\\dropitem_purple\\dropitem_purple.str");
AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_purple\\dropitem_purple_bottom\\dropitem_purple_bottom.str");
this->soundName = "drop_purple.wav";
break;
case EF_UNK_1189:
case EF_DROPITEM_YELLOW:
AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_yellow\\dropitem_yellow\\dropitem_yellow.str");
AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_yellow\\dropitem_yellow_bottom\\dropitem_yellow_bottom.str");
this->soundName = "drop_yellow.wav";
break;
case EF_UNK_1869:
case EF_DROPITEM_BLUE:
AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_blue\\dropitem_blue\\dropitem_blue.str");
AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_blue\\dropitem_blue_bottom\\dropitem_blue_bottom.str");
this->soundName = "drop_blue.wav";
break;
case EF_UNK_1870:
case EF_DROPITEM_GREEN:
AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_green\\dropitem_green\\dropitem_green.str");
AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_green\\dropitem_green_bottom\\dropitem_green_bottom.str");
this->soundName = "drop_green.wav";
break;
case EF_UNK_1871:
case EF_DROPITEM_RED:
AsParticle(this->emitters[0])->Open("new_dropitem\\dropitem_red\\dropitem_red\\dropitem_red.str");
AsParticle(this->emitters[1])->Open("new_dropitem\\dropitem_red\\dropitem_red_bottom\\dropitem_red_bottom.str");
this->soundName = "drop_red.wav";
@ -1918,7 +1918,7 @@ CJupitelThunderHit::CJupitelThunderHit() : CEffect(-1) {
void CJupitelThunderHit::SpawnHit() {
switch (this->id) {
case EF_YUFITELHIT:
case EF_UNK_1200:
case EF_THUNDER_PLAZMA_BLAST:
this->textures.push_back("effect\\thunder_plazma_blast_a.bmp");
this->textures.push_back("effect\\thunder_plazma_blast_b.bmp");
this->textures.push_back("effect\\thunder_ball_d.bmp");
@ -2625,10 +2625,10 @@ void CRandomOptEffect::Init() {
case EF_UNK_1188:
particle->SetColor(0, 100, 150);
break;
case EF_UNK_1189:
case EF_DROPITEM_YELLOW:
particle->SetColor(255, 255, 128);
break;
case EF_UNK_1190:
case EF_DROPITEM_PURPLE:
particle->SetColor(128, 0, 255);
break;
case EF_UNK_1191:
@ -3626,7 +3626,7 @@ void CSevereRainStorm::SpawnParticles() {
this->SpawnSevereRain();
}
break;
case EF_UNK_2026:
case EF_DIAMOND_STORM:
if (this->elapsedFrames % 5 == 0) {
vector3d position = {this->position[0], this->position[1], this->position[2]};
position.x = (static_cast<float>(ClampedRandom(451)) - 225.0f) * 0.1f + position.x;
@ -3638,7 +3638,7 @@ void CSevereRainStorm::SpawnParticles() {
this->emitters.push_back(emitter);
}
break;
case EF_UNK_2165:
case EF_CROSS_RAIN:
if (this->elapsedFrames % (9 - this->effectLevel / 3) == 0) {
const long long ranges[10] = {3, 3, 3, 5, 5, 5, 7, 7, 7, 9};
const long long spread = ranges[std::min(static_cast<unsigned int>(this->effectLevel), 10u) - 1] * 50;
@ -3904,7 +3904,7 @@ void CSevereRainStorm::Open() {
bool CSevereRainStorm::IsAlive() {
switch (this->id) {
case EF_UNK_1752:
case EF_UNK_2165:
case EF_CROSS_RAIN:
case EF_UNK_2462:
return this->ActorExists();
case EF_UNK_1276:
@ -3912,7 +3912,7 @@ bool CSevereRainStorm::IsAlive() {
return false;
}
break;
case EF_UNK_2026:
case EF_DIAMOND_STORM:
if (EffectLifetime(2026) < this->elapsedFrames) {
return false;
}
@ -4027,7 +4027,7 @@ void CCrimsonArrowEffect::Open() {
EZ2STREmitter* emitter = reinterpret_cast<EZ2STREmitter*>(arrow);
switch (this->id) {
case EF_UNK_1756:
case EF_CRIMSONARROW:
arrow->Load("crimsonarrow\\crimsonarrow\\crimsonarrow.str");
emitter->offset.x = 0.0f;
emitter->offset.y = -13.0f;
@ -4035,7 +4035,7 @@ void CCrimsonArrowEffect::Open() {
arrow->m_angle = static_cast<float>(angle);
this->AddEvent(0, "effect\\AG_CRIMSON_ARROW1.wav", 0, 0);
break;
case EF_UNK_2074:
case EF_RHYTHMSHOOTING_SHOT:
arrow->Load("rhythmshooting\\rhythmshooting_shot\\rhythmshooting_shot.str");
emitter->offset.x = 0.0f;
emitter->offset.y = -8.0f;
@ -4043,7 +4043,7 @@ void CCrimsonArrowEffect::Open() {
arrow->m_angle = static_cast<float>(angle + 180.0);
this->AddEvent(0, "effect\\TR_RHYTHMSHOOTING.wav", 0, 0);
break;
case EF_UNK_2114:
case EF_FRENZY_SHOT:
arrow->Load("frenzy_shot\\frenzy_shot\\frenzy_shot.str");
emitter->offset.x = 0.0f;
emitter->offset.y = -4.0f;
@ -4051,11 +4051,11 @@ void CCrimsonArrowEffect::Open() {
arrow->m_angle = static_cast<float>(angle);
this->AddEvent(0, "effect\\ABC_FRENZY_SHOT.wav", 0, 0);
break;
case EF_UNK_2154:
case EF_UNLUCKY_RUSH:
arrow->Load("unlucky_rush\\unlucky_rush\\unlucky_rush.str");
arrow->m_angle = static_cast<float>(angle);
break;
case EF_UNK_2195:
case EF_JUDGEMENT_CROSS_SHOT:
arrow->Load("judgement_cross\\judgement_cross_shot\\judgement_cross_shot.str");
arrow->m_angle = static_cast<float>(angle + 180.0);
break;

View file

@ -117,7 +117,7 @@ public:
/* 00CC */ std::vector<EZ2STREmitter*> emitters;
/* 00D8 */ unsigned char fadingIn;
/* 00D9 */ unsigned char unknown_00D9[3];
/* 00D9 */ unsigned char padding_00D9[3];
/* 00DC */ unsigned int expireTime;
};
@ -148,7 +148,7 @@ public:
/* 00CC */ std::vector<EZ2STREmitter*> emitters;
/* 00D8 */ std::vector<EZ2STREmitter*> secondStrikeEmitters;
/* 00E4 */ unsigned char secondStrike;
/* 00E5 */ unsigned char unknown_00E5[3];
/* 00E5 */ unsigned char padding_00E5[3];
};
class CEternalSlashAttackEffect : public CEffect {
@ -218,13 +218,13 @@ public:
/* 00CC */ std::list<EZ2STREmitter*> emitters;
/* 00D4 */ std::string leftTexture;
/* 00EC */ std::string rightTexture;
/* 0104 */ int unknown_0104;
/* 0104 */ int padding_0104;
/* 0108 */ double stepDistance;
/* 0110 */ unsigned char leftFoot;
/* 0111 */ unsigned char unknown_0111[3];
/* 0111 */ unsigned char padding_0111[3];
/* 0114 */ vector3d lastPosition;
/* 0120 */ float lastGroundHeight;
/* 0124 */ int unknown_0124;
/* 0124 */ int padding_0124;
};
class CFootprintStrEffect : public CEffect {
@ -278,7 +278,7 @@ public:
void Close() override;
bool IsAlive() override;
/* 00CC */ unsigned char unknown_00CC[4];
/* 00CC */ unsigned char padding_00CC[4];
/* 00D0 */ long long maxLevel;
/* 00D8 */ long long level;
/* 00E0 */ std::map<long long, AbyssWave> waves;
@ -297,7 +297,7 @@ public:
/* 00CC */ std::vector<CParticle*> particles;
/* 00D8 */ unsigned char loaded;
/* 00D9 */ unsigned char unknown_00D9[3];
/* 00D9 */ unsigned char padding_00D9[3];
};
class CPetitioEffect : public CEffect {
@ -337,7 +337,7 @@ public:
}
/* 00CC */ bool active;
/* 00CD */ unsigned char unknown_00CD[3];
/* 00CD */ unsigned char padding_00CD[3];
/* 00D0 */ EZ2STREmitter* emitter;
};
@ -513,7 +513,7 @@ public:
void InitEvents() override;
void OpenEmitters();
/* 00CC */ int unknown_00CC;
/* 00CC */ int padding_00CC;
/* 00D0 */ int emitterCount;
/* 00D4 */ std::vector<EZ2STREmitter*> emitters;
/* 00E0 */ std::string soundPath;
@ -534,7 +534,7 @@ public:
/* 00CC */ std::list<EZ2STREmitter*> emitters;
/* 00D4 */ std::list<EZ2STREmitter*> finishedEmitters;
/* 00DC */ int unknown_00DC;
/* 00DC */ int padding_00DC;
union {
struct {
/* 00E0 */ int countLow;
@ -550,7 +550,7 @@ public:
/* 0100 */ vector3d targetPosition;
/* 010C */ vector3d originPosition;
/* 0118 */ vector3d orbitCenter;
/* 0124 */ int unknown_0124;
/* 0124 */ int padding_0124;
/* 0128 */ double orbitRadius;
/* 0130 */ double startAngle;
};

View file

@ -20,7 +20,7 @@ public:
void FollowOwner();
/* 0158 */ bool m_visible;
/* 0159 */ unsigned char unknown_0159[0x03];
/* 0159 */ unsigned char padding_0159[0x03];
/* 015C */ CGameObject* m_owner;
/* 0160 */ vector3d m_drift;
/* 016C */ vector3d origin;

View file

@ -37,7 +37,7 @@ struct EZeffectData {
/* 0000 */ int maximumFrame;
/* 0004 */ int fps;
/* 0008 */ int clipCount;
/* 000C */ int unknown_000C;
/* 000C */ int padding_000C;
/* 0010 */ EZeffectClip clips[60];
};
@ -71,7 +71,7 @@ public:
/* 003C */ short red;
/* 003E */ short green;
/* 0040 */ short blue;
/* 0042 */ unsigned char unknown_0042[2];
/* 0042 */ unsigned char padding_0042[2];
/* 0044 */ int alpha;
/* 0048 */ unsigned char effectParameters[4];
/* 004C */ int phaseParameter;
@ -160,10 +160,10 @@ public:
/* 3FE0 */ long long m_lift;
/* 3FE8 */ bool m_flipX;
/* 3FE9 */ bool m_flipY;
/* 3FEA */ short unknown_3FEA = 0;
/* 3FEA */ short padding_3FEA = 0;
/* 3FEC */ float m_screenShiftX = 0;
/* 3FF0 */ float m_screenShiftY = 0;
/* 3FF4 */ int unknown_3FF4;
/* 3FF4 */ int padding_3FF4;
};
void InitParticleQuad(RenderVertex* vertices);

View file

@ -32,7 +32,7 @@ namespace {
}
/* 11CA8 */ int duration;
/* 11CAC */ int unknown_11CAC;
/* 11CAC */ int padding_11CAC;
/* 11CB0 */ int first;
/* 11CB4 */ int second;
};

View file

@ -6464,7 +6464,7 @@ void CRagEffect::DigitalSpace(int effectId) {
}
if (this->state.parent && this->state.currentPrimitive) {
this->state.lastPrim->state.alpha = static_cast<float>(this->state.parent->render.unknown_0130[0] ? 70 : 255);
this->state.lastPrim->state.alpha = static_cast<float>(this->state.parent->render.translucentOther[0] ? 70 : 255);
}
if (this->state.stateCnt == this->state.duration - 1) {
@ -17226,7 +17226,7 @@ void CPlayer::UpdateFootprints(int kind) {
if (kind == 1) {
mode->LaunchDummyEffect(&this->footprintPosition, (this->footprintCounter != interval) + 326, 333, angle);
} else if (kind == 2 && this->render.unknown_00F7 > static_cast<unsigned>(interval)) {
} else if (kind == 2 && this->render.runStartTick > static_cast<unsigned>(interval)) {
if (this->footprintCounter == interval) {
mode->LaunchDummyEffect(&this->footprintPosition, 447, 333, angle);
} else {
@ -22862,7 +22862,7 @@ bool CRagEffect::OnProcess3() {
case EF_POK_105:
this->TexturedClassChange(105);
break;
case EF_UNKNOWN_RING_YELLOW:
case EF_BEGINSPELL_RING_YELLOW:
this->render.position = this->state.parent->render.position;
if (this->state.stateCnt == 0) {
PlayEffectWave(*this, "effect\\EF_BeginSpell.wav");
@ -22870,10 +22870,10 @@ bool CRagEffect::OnProcess3() {
this->TexturedQuadRingSized(25, "effect\\ring_yellow.tga", 0);
}
break;
case EF_UNKNOWN_SPELL:
case EF_BEGINSPELL_SWIRL:
this->BeginSpellSwirl(45, "", 11);
break;
case EF_UNKNOWN_RING_WHITE:
case EF_BEGINSPELL_RING_WHITE:
if (this->state.stateCnt == 0) {
g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0);
}
@ -22936,7 +22936,7 @@ bool CRagEffect::OnProcess3() {
}
this->HealRingSparkle("effect\\ring_blue.tga", 2);
break;
case EF_UNK_2439:
case EF_CRUEL_BITE_LINE:
{
const char* line = g_serviceOptions.Get(229) ? "effect\\DRUID\\DR_CRUEL_BITE\\min_cruel_bite_line\\line_red.tga" : "effect\\DRUID\\DR_CRUEL_BITE\\cruel_bite_line\\line_red.tga";
const char* black = g_serviceOptions.Get(229) ? "effect\\DRUID\\DR_CRUEL_BITE\\min_cruel_bite_line\\line_black.tga" : "effect\\DRUID\\DR_CRUEL_BITE\\cruel_bite_line\\line_black.tga";
@ -22948,7 +22948,7 @@ bool CRagEffect::OnProcess3() {
}
}
break;
case EF_UNK_2442:
case EF_QUILL_SPEAR_LINE:
{
const char* line = g_serviceOptions.Get(229) ? "effect\\DRUID\\AT_QUILL_SPEAR\\min_quill_spear_line\\line_color.tga" : "effect\\DRUID\\AT_QUILL_SPEAR\\quill_spear_line\\line_color.tga";
const char* black = g_serviceOptions.Get(229) ? "effect\\DRUID\\AT_QUILL_SPEAR\\min_quill_spear_line\\line_black.tga" : "effect\\DRUID\\AT_QUILL_SPEAR\\quill_spear_line\\line_black.tga";
@ -25191,7 +25191,7 @@ bool CRagEffect::OnProcess() {
case EF_RUN:
if ((this->state.parent->render.flags & 0x8000) == 0) {
this->state.parent->render.flags += 0x8000;
this->state.parent->render.unknown_00F7 = static_cast<unsigned char>(this->state.stateCnt);
this->state.parent->render.runStartTick = static_cast<unsigned char>(this->state.stateCnt);
}
break;
case EF_STOPEFFECT:

View file

@ -51,10 +51,10 @@ struct RagEffectState {
};
/* 11B50 */ std::int32_t colorChannels[4];
/* 11B60 */ unsigned char forceRender;
/* 11B61 */ unsigned char unknown_11C99[3];
/* 11B61 */ unsigned char padding_11B61[3];
/* 11B64 */ std::uint32_t tag;
/* 11B68 */ unsigned char visibilityFlags;
/* 11B69 */ unsigned char unknown_11CA1[7];
/* 11B69 */ unsigned char padding_11B69[7];
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -16,7 +16,7 @@ public:
void Close() override;
bool IsAlive() override;
/* 00CC */ unsigned char unknown_00CC[0x38];
/* 00CC */ unsigned char padding_00CC[0x38];
/* 0104 */ int angleIndex;
/* 0108 */ std::vector<CParticle*> particles;
};

View file

@ -104,7 +104,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->frameDelay = 4.0f;
particle->scale = 1.5f;
break;
case EF_UNK_1130:
case EF_BAKURETSU_HADOU:
particle->SetSprite("이팩트\\bakuretsu_hadou\\bakuretsu_hadou.spr");
particle->SetAction("이팩트\\bakuretsu_hadou\\bakuretsu_hadou.act");
particle->renderOptions |= 0x200;
@ -113,91 +113,91 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 0;
particle->frameDelay = 8.0f;
break;
case EF_UNK_1147:
case EF_POPCORN:
particle->SetSprite("이팩트\\EF_POPCORN\\EF_POPCORN.spr");
particle->SetAction("이팩트\\EF_POPCORN\\EF_POPCORN.act");
particle->loopMode = 1;
particle->depthOffset = 0.0003f;
particle->frameDelay = 8.0f;
break;
case EF_UNK_1151:
case EF_IMMUNE_PROPERTY_NOTHING:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_NOTHING.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_NOTHING.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1152:
case EF_IMMUNE_PROPERTY_WATER:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WATER.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WATER.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1153:
case EF_IMMUNE_PROPERTY_GROUND:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_GROUND.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_GROUND.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1154:
case EF_IMMUNE_PROPERTY_FIRE:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_FIRE.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_FIRE.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1155:
case EF_IMMUNE_PROPERTY_WIND:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WIND.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_WIND.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1156:
case EF_IMMUNE_PROPERTY_POISON:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_POISON.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_POISON.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1157:
case EF_IMMUNE_PROPERTY_SAINT:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_SAINT.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_SAINT.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1158:
case EF_IMMUNE_PROPERTY_DARKNESS:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_DARKNESS.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_DARKNESS.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1159:
case EF_IMMUNE_PROPERTY_TELEKINESIS:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_TELEKINESIS.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_TELEKINESIS.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1160:
case EF_IMMUNE_PROPERTY_UNDEAD:
particle->SetSprite("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_UNDEAD.spr");
particle->SetAction("이팩트\\EF_IMMUNE_PROPERTY\\EF_IMMUNE_PROPERTY_UNDEAD.act");
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
break;
case EF_UNK_1192:
case EF_RANDOM_OPT_YELLOW:
particle->SetSprite("이팩트\\random_opt_spr\\yellow.spr");
particle->SetAction("이팩트\\random_opt_spr\\yellow.act");
particle->loopMode = 0;
particle->frameDelay = 4.0f;
break;
case EF_UNK_1211:
case EF_UNK_1212:
case EF_UNK_1213:
case EF_SUBJECT_AURA_1212:
case EF_SUBJECT_AURA_1213:
particle->SetSprite("이팩트\\subject_aura\\subject_aura.spr");
particle->SetAction("이팩트\\subject_aura\\subject_aura.act");
particle->frameDelay = 8.0f;
particle->loopMode = 0;
particle->depthOffset = 0.0003f;
particle->flags = 0x101;
if (this->id == EF_UNK_1212) {
if (this->id == EF_SUBJECT_AURA_1212) {
particle->animation = 0;
} else if (this->id == EF_UNK_1213) {
} else if (this->id == EF_SUBJECT_AURA_1213) {
particle->animation = 1;
} else if (this->id == EF_UNK_1211) {
particle->animation = 2;
@ -210,7 +210,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 1;
particle->flags = 0x101;
break;
case EF_UNK_1232:
case EF_BOOK_OF_CREATINGSTAR:
particle->SetSprite("이팩트\\book_of_creatingstar\\book_of_creatingstar.spr");
particle->SetAction("이팩트\\book_of_creatingstar\\book_of_creatingstar.act");
particle->frameDelay = 4.0f;
@ -231,7 +231,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 1;
particle->flags = 0x101;
break;
case EF_UNK_1235:
case EF_SOUL_SHADOW:
particle->SetSprite("이팩트\\soul_shadow\\soul_shadow.spr");
particle->SetAction("이팩트\\soul_shadow\\soul_shadow.act");
particle->depthOffset = 0.0003f;
@ -239,7 +239,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 1;
particle->flags = 0x101;
break;
case EF_UNK_1236:
case EF_SOUL_FAIRY:
particle->SetSprite("이팩트\\soul_fairy\\soul_fairy.spr");
particle->SetAction("이팩트\\soul_fairy\\soul_fairy.act");
particle->depthOffset = 0.0003f;
@ -247,7 +247,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 1;
particle->flags = 0x101;
break;
case EF_UNK_1237:
case EF_SOUL_FALCON:
particle->SetSprite("이팩트\\soul_falcon\\soul_falcon.spr");
particle->SetAction("이팩트\\soul_falcon\\soul_falcon.act");
particle->depthOffset = 0.0003f;
@ -263,7 +263,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 1;
particle->flags = 0x101;
break;
case EF_UNK_1377:
case EF_VALKYRIE_WING:
particle->SetSprite("이팩트\\valkyrie_wing\\valkyrie_wing.spr");
particle->SetAction("이팩트\\valkyrie_wing\\valkyrie_wing.act");
particle->loopMode = 0;
@ -271,7 +271,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->frameDelay = 6.0f;
particle->flags = 0x101;
break;
case EF_UNK_1419:
case EF_C_AMDARAIS_EFFECT:
particle->SetSprite("이팩트\\c_amdarais_effect.spr");
particle->SetAction("이팩트\\c_amdarais_effect.act");
particle->depthOffset = 0.0001f;
@ -279,7 +279,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 0;
particle->flags = 1;
break;
case EF_UNK_1617:
case EF_BLACKBUBBLE_SMALL:
particle->SetSprite("이팩트\\black_bubble\\small\\blackbubble_small.spr");
particle->SetAction("이팩트\\black_bubble\\small\\blackbubble_small.act");
particle->depthOffset = 0.0001f;
@ -287,7 +287,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 0;
particle->flags = 1;
break;
case EF_UNK_1618:
case EF_BLACKBUBBLE_MIDIUM:
particle->SetSprite("이팩트\\black_bubble\\midium\\blackbubble_midium.spr");
particle->SetAction("이팩트\\black_bubble\\midium\\blackbubble_midium.act");
particle->depthOffset = 0.0001f;
@ -295,7 +295,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 0;
particle->flags = 1;
break;
case EF_UNK_1619:
case EF_BLACKBUBBLE_LARGE:
particle->SetSprite("이팩트\\black_bubble\\large\\blackbubble_large.spr");
particle->SetAction("이팩트\\black_bubble\\large\\blackbubble_large.act");
particle->depthOffset = 0.0001f;
@ -303,7 +303,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 0;
particle->flags = 1;
break;
case EF_UNK_2394:
case EF_SERPENT_SHADOW:
particle->SetSprite("이팩트\\Serpent_Shadow\\Serpent_Shadow.spr");
particle->SetAction("이팩트\\Serpent_Shadow\\Serpent_Shadow.act");
particle->loopMode = 0;
@ -311,35 +311,35 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->frameDelay = 4.0f;
particle->flags = 0xD;
break;
case EF_UNK_2420:
case EF_VIOLEN_HIT:
particle->SetSprite("몬스터\\violen_hit.spr");
particle->SetAction("몬스터\\violen_hit.act");
particle->loopMode = 1;
particle->depthOffset = 0.001f;
particle->frameDelay = 4.0f;
break;
case EF_UNK_2424:
case EF_C_AURA_OF_GHOST_S:
particle->SetSprite("이팩트\\C_Aura_Of_Ghost_S\\C_Aura_Of_Ghost_S.spr");
particle->SetAction("이팩트\\C_Aura_Of_Ghost_S\\C_Aura_Of_Ghost_S.act");
particle->loopMode = 0;
particle->depthOffset = 0.001f;
particle->frameDelay = 4.0f;
break;
case EF_UNK_2430:
case EF_C_GUIDE_OF_DEAD_TEXT:
particle->SetSprite("이팩트\\C_Guide_Of_Dead_Text\\C_Guide_Of_Dead_Text.spr");
particle->SetAction("이팩트\\C_Guide_Of_Dead_Text\\C_Guide_Of_Dead_Text.act");
particle->loopMode = 0;
particle->depthOffset = 0.001f;
particle->frameDelay = 12.0f;
break;
case EF_UNK_2431:
case EF_C_MEDJED_TEXT:
particle->SetSprite("이팩트\\C_Medjed_Text\\C_Medjed_Text.spr");
particle->SetAction("이팩트\\C_Medjed_Text\\C_Medjed_Text.act");
particle->loopMode = 0;
particle->depthOffset = 0.001f;
particle->frameDelay = 12.0f;
break;
case EF_UNK_2428:
case EF_ATQUE_POENITENTIA:
particle->SetSprite("이팩트\\Atque_Poenitentia\\Atque_Poenitentia.spr");
particle->SetAction("이팩트\\Atque_Poenitentia\\Atque_Poenitentia.act");
particle->loopMode = 0;
@ -347,7 +347,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->frameDelay = 4.0f;
particle->flags = 0xD;
break;
case EF_UNK_2429:
case EF_PERM_FROST_OBLIVION:
particle->SetSprite("이팩트\\Perm_Frost_Oblivion\\Perm_Frost_Oblivion.spr");
particle->SetAction("이팩트\\Perm_Frost_Oblivion\\Perm_Frost_Oblivion.act");
particle->depthOffset = 0.001f;
@ -355,7 +355,7 @@ void CSpriteEffect::SetupParticle(CSpriteParticle* particle) {
particle->loopMode = 0;
particle->flags = 1;
break;
case EF_UNK_2458:
case EF_S_BEELZEBUB_WING:
particle->SetSprite("이팩트\\S_Beelzebub_Wing\\S_Beelzebub_Wing.spr");
particle->SetAction("이팩트\\S_Beelzebub_Wing\\S_Beelzebub_Wing.act");
particle->flags = 1;
@ -405,7 +405,7 @@ bool CSpriteEffect::IsAlive() {
switch (this->id) {
case EF_GROUND_EXPLOSION:
return !this->IsFinished();
case EF_UNK_1192: {
case EF_RANDOM_OPT_YELLOW: {
if (this->actor == 0) {
return false;
}
@ -425,33 +425,33 @@ bool CSpriteEffect::IsAlive() {
return true;
}
case EF_UNK_1130:
case EF_UNK_1151:
case EF_UNK_1152:
case EF_UNK_1153:
case EF_UNK_1154:
case EF_UNK_1155:
case EF_UNK_1156:
case EF_UNK_1157:
case EF_UNK_1158:
case EF_UNK_1159:
case EF_UNK_1160:
case EF_BAKURETSU_HADOU:
case EF_IMMUNE_PROPERTY_NOTHING:
case EF_IMMUNE_PROPERTY_WATER:
case EF_IMMUNE_PROPERTY_GROUND:
case EF_IMMUNE_PROPERTY_FIRE:
case EF_IMMUNE_PROPERTY_WIND:
case EF_IMMUNE_PROPERTY_POISON:
case EF_IMMUNE_PROPERTY_SAINT:
case EF_IMMUNE_PROPERTY_DARKNESS:
case EF_IMMUNE_PROPERTY_TELEKINESIS:
case EF_IMMUNE_PROPERTY_UNDEAD:
case EF_UNK_1211:
case EF_UNK_1212:
case EF_UNK_1213:
case EF_UNK_1377:
case EF_UNK_1419:
case EF_UNK_1617:
case EF_UNK_1618:
case EF_UNK_1619:
case EF_UNK_2394:
case EF_UNK_2424:
case EF_UNK_2428:
case EF_UNK_2429:
case EF_UNK_2430:
case EF_UNK_2431:
case EF_SUBJECT_AURA_1212:
case EF_SUBJECT_AURA_1213:
case EF_VALKYRIE_WING:
case EF_C_AMDARAIS_EFFECT:
case EF_BLACKBUBBLE_SMALL:
case EF_BLACKBUBBLE_MIDIUM:
case EF_BLACKBUBBLE_LARGE:
case EF_SERPENT_SHADOW:
case EF_C_AURA_OF_GHOST_S:
case EF_ATQUE_POENITENTIA:
case EF_PERM_FROST_OBLIVION:
case EF_C_GUIDE_OF_DEAD_TEXT:
case EF_C_MEDJED_TEXT:
case EF_UNK_2443:
case EF_UNK_2458:
case EF_S_BEELZEBUB_WING:
return this->ActorExists();
}
@ -482,7 +482,7 @@ void CSpriteEffect::OnProcess() {
++particle->elapsedFrames;
switch (this->id) {
case EF_UNK_1130: {
case EF_BAKURETSU_HADOU: {
int height = 8;
if (CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor))) {
height = static_cast<int>(actor->GetNameOffset() + 8.0f);
@ -492,22 +492,22 @@ void CSpriteEffect::OnProcess() {
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_1147:
case EF_UNK_1192: {
case EF_POPCORN:
case EF_RANDOM_OPT_YELLOW: {
const vector3d offset = {0.0f, -10.0f, 0.0f};
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_1151:
case EF_UNK_1152:
case EF_UNK_1153:
case EF_UNK_1154:
case EF_UNK_1155:
case EF_UNK_1156:
case EF_UNK_1157:
case EF_UNK_1158:
case EF_UNK_1159:
case EF_UNK_1160: {
case EF_IMMUNE_PROPERTY_NOTHING:
case EF_IMMUNE_PROPERTY_WATER:
case EF_IMMUNE_PROPERTY_GROUND:
case EF_IMMUNE_PROPERTY_FIRE:
case EF_IMMUNE_PROPERTY_WIND:
case EF_IMMUNE_PROPERTY_POISON:
case EF_IMMUNE_PROPERTY_SAINT:
case EF_IMMUNE_PROPERTY_DARKNESS:
case EF_IMMUNE_PROPERTY_TELEKINESIS:
case EF_IMMUNE_PROPERTY_UNDEAD: {
int height = 25;
if (CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor))) {
height = static_cast<int>(actor->GetNameOffset() + 25.0f);
@ -518,8 +518,8 @@ void CSpriteEffect::OnProcess() {
break;
}
case EF_UNK_1211:
case EF_UNK_1212:
case EF_UNK_1213: {
case EF_SUBJECT_AURA_1212:
case EF_SUBJECT_AURA_1213: {
CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor));
if (!actor) {
break;
@ -530,7 +530,7 @@ void CSpriteEffect::OnProcess() {
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_1377: {
case EF_VALKYRIE_WING: {
CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor));
if (!actor) {
break;
@ -541,8 +541,8 @@ void CSpriteEffect::OnProcess() {
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_2394:
case EF_UNK_2424: {
case EF_SERPENT_SHADOW:
case EF_C_AURA_OF_GHOST_S: {
CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor));
if (!actor) {
break;
@ -553,7 +553,7 @@ void CSpriteEffect::OnProcess() {
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_2428: {
case EF_ATQUE_POENITENTIA: {
CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor));
if (!actor) {
break;
@ -565,7 +565,7 @@ void CSpriteEffect::OnProcess() {
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_2429: {
case EF_PERM_FROST_OBLIVION: {
CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor));
if (!actor) {
break;
@ -576,8 +576,8 @@ void CSpriteEffect::OnProcess() {
SetOffsetPosition(particle->position, this->position, offset);
break;
}
case EF_UNK_2430:
case EF_UNK_2431: {
case EF_C_GUIDE_OF_DEAD_TEXT:
case EF_C_MEDJED_TEXT: {
CGameActor* actor = static_cast<CGameActor*>(FindRenderObject(this->actor));
if (!actor) {
break;
@ -596,7 +596,7 @@ void CSpriteEffect::OnProcess() {
particle->position.y = this->position[1];
particle->position.z = this->position[2];
break;
case EF_UNK_2458:
case EF_S_BEELZEBUB_WING:
particle->applyActorExtent = 1;
particle->applyActorLift = 1;
particle->screenOffsetY = -105.0f;

View file

@ -19,7 +19,7 @@ public:
/* 02BC */ unsigned char applyActorExtent;
/* 02BD */ unsigned char applyActorLift;
/* 02BE */ unsigned char unknown_02BE[2];
/* 02BE */ unsigned char padding_02BE[2];
/* 02C0 */ float screenOffsetX;
/* 02C4 */ float screenOffsetY;
/* 02C8 */ vector3d velocity;

View file

@ -18,7 +18,7 @@ public:
void SetupParticle(CParticle* particle);
void UpdateParticle(CParticle* particle);
/* 00CC */ unsigned char unknown_00CC[0x34];
/* 00CC */ unsigned char padding_00CC[0x34];
/* 0100 */ std::vector<CParticle*> particles;
};

View file

@ -69,7 +69,7 @@ void CViolentQuakeEffect::Close() {
// FUNCTION: fn_07533
void CViolentQuakeEffect::Open() {
switch (this->id) {
case EF_UNK_1760: {
case EF_VIOLENTQUAKE: {
CEZ2STRParticle* emitter = static_cast<CEZ2STRParticle*>(CreateEZ2STRParticle(reinterpret_cast<const vector3d*>(this->position), 5));
emitter->Load(FormatOwnedString("violentquake\\violentquake\\violentquake_%02d.str", std::max(0, rand() % 3) + 1));
emitter->offsetX = 0.0f;

View file

@ -11,7 +11,7 @@ struct CWhirlwindEffect : CRagEffect {
}
/* 11CA8 */ int duration;
/* 11CAC */ int unknown_11CAC;
/* 11CAC */ int padding_11CAC;
/* 11CB0 */ std::chrono::steady_clock::time_point endTime;
bool OnProcess() override;

View file

@ -81,8 +81,8 @@ void CEmblemDataUploadAsyncWork::Bind(std::string url, std::uint32_t accountId,
this->m_accountName = accountName;
this->m_guildId = guildId;
this->m_path = path;
const std::uint8_t unknown[] = {0x62, 0x97, 0x24, 0xD7, 0x8C, 0xDA, 0x41, 0xC5};
AsyncDiagnostic diagnostic(false, std::string(DecryptName<0xC52FB5FBB94FF917ULL>(unknown)), sourceFile, 54);
const std::uint8_t diagnosticSource[] = {0x62, 0x97, 0x24, 0xD7, 0x8C, 0xDA, 0x41, 0xC5};
AsyncDiagnostic diagnostic(false, std::string(DecryptName<0xC52FB5FBB94FF917ULL>(diagnosticSource)), sourceFile, 54);
this->m_diagnostic.MoveFrom(diagnostic);
}

View file

@ -523,7 +523,7 @@ int L_SetSuccessRate(lua_State* L) {
// OFFSET: 0x00689250
// FUNCTION: fn_05583
void EnchantMgrUnknown689250() {
void EnchantMgrNullSub() {
}
// OFFSET: 0x006821B0

View file

@ -40,7 +40,7 @@ struct EnchantInfo {
/* 0010 */ uint32_t condition2;
/* 0014 */ bool approveRandomOption;
/* 0018 */ std::vector<int> slots;
/* 0024 */ uint8_t unknown_0024[0x4];
/* 0024 */ uint8_t padding_0024[0x4];
/* 0028 */ bool resetEnabled;
/* 0030 */ uint64_t resetRate;
/* 0038 */ uint64_t resetCost;

View file

@ -12,7 +12,7 @@
// OFFSET: 0x009105F0
// FUNCTION: fn_12503
CFlyingShipRouteInfo::CFlyingShipRouteInfo()
: unknown_0010(0), unknown_0014(0), segmentIndex(0), segmentProgress(0), segmentLength(0), travelledDistance(0), routeReset(1), routeType(0), lineColor(0),
: padding_0010(0), padding_0014(0), segmentIndex(0), segmentProgress(0), segmentLength(0), travelledDistance(0), routeReset(1), routeType(0), lineColor(0),
routeState(0) {
}

View file

@ -35,8 +35,8 @@ public:
void Update(UIRoMapWnd* wnd, float elapsed);
/* 0004 */ std::vector<FlyingShipRouteEntry> entries;
/* 0010 */ int unknown_0010;
/* 0014 */ int unknown_0014;
/* 0010 */ int padding_0010;
/* 0014 */ int padding_0014;
/* 0018 */ int segmentIndex;
/* 001C */ float segmentProgress;
/* 0020 */ float segmentLength;

View file

@ -31,7 +31,7 @@ struct GroundCell {
/* 0048 */ GroundQuad* side2;
/* 004C */ std::uint32_t frame;
/* 0050 */ unsigned char color[3];
/* 0053 */ unsigned char unknown_0053;
/* 0053 */ unsigned char padding_0053;
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -61,9 +61,9 @@ void GuildInfo::RemoveAgitId(int value) {
// OFFSET: 0x00AE42C0
// FUNCTION: fn_18034
void GuildInfo::RemoveRelatedGuild(int unknown_0000, int unknown_0004) {
void GuildInfo::RemoveRelatedGuild(int guildId, int relation) {
for (auto it = this->relatedGuilds.begin(); it != this->relatedGuilds.end(); ++it) {
if (it->guildId == unknown_0000 && it->relation == unknown_0004) {
if (it->guildId == guildId && it->relation == relation) {
this->relatedGuilds.erase(it);
g_windowMgr.RefreshGuildWindows();
return;
@ -90,10 +90,10 @@ int GuildInfo::GetAgitId(int index) {
// OFFSET: 0x00AE4690
// FUNCTION: fn_18037
int GuildInfo::CountRelatedGuilds(int unknown_0004) {
int GuildInfo::CountRelatedGuilds(int relation) {
int count = 0;
for (auto it = this->relatedGuilds.begin(); it != this->relatedGuilds.end(); ++it) {
if (it->relation == unknown_0004) {
if (it->relation == relation) {
++count;
}
}
@ -155,9 +155,9 @@ void GuildInfo::Init() {
// OFFSET: 0x00AE49F0
// FUNCTION: fn_18040
bool GuildInfo::HasRelatedGuild(int unknown_0000) {
bool GuildInfo::HasRelatedGuild(int guildId) {
for (auto it = this->relatedGuilds.begin(); it != this->relatedGuilds.end(); ++it) {
if (it->guildId == unknown_0000 && it->relation == 0) {
if (it->guildId == guildId && it->relation == 0) {
return true;
}
}
@ -221,10 +221,10 @@ void GuildInfo::UpdateCharacterName(int characterId, const char* name) {
this->masterName = name;
}
std::string unknownName = LookupMessage(MSI_NAMELESS_USER);
std::string namelessUserName = LookupMessage(MSI_NAMELESS_USER);
for (auto it = this->m_members.begin(); it != this->m_members.end(); ++it) {
if (it->characterId == characterId) {
if (it->name.empty() || it->name == unknownName) {
if (it->name.empty() || it->name == namelessUserName) {
it->name = name;
}
break;
@ -233,7 +233,7 @@ void GuildInfo::UpdateCharacterName(int characterId, const char* name) {
for (auto it = this->bannedMembers.begin(); it != this->bannedMembers.end(); ++it) {
if (it->characterId == characterId) {
if (it->name.empty() || it->name == unknownName) {
if (it->name.empty() || it->name == namelessUserName) {
it->name = name;
}
break;
@ -247,12 +247,12 @@ void GuildInfo::UpdateCharacterName(int characterId, const char* name) {
// OFFSET: 0x00AE4F50
// FUNCTION: fn_18045
void GuildInfo::UpdateMemberStatus(int accountId, int online, int characterId, short unknown_002C, short unknown_0020, short unknown_0024) {
void GuildInfo::UpdateMemberStatus(int accountId, int online, int characterId, short sex, short head, short headPalette) {
for (auto it = this->m_members.begin(); it != this->m_members.end(); ++it) {
if (characterId == it->characterId) {
it->sex = unknown_002C;
it->head = unknown_0020;
it->headPalette = unknown_0024;
it->sex = sex;
it->head = head;
it->headPalette = headPalette;
it->online = online;
break;
}

View file

@ -100,16 +100,16 @@ public:
void ClearAgitIds();
void ClearMembers();
void RemoveAgitId(int value);
void RemoveRelatedGuild(int unknown_0000, int unknown_0004);
void RemoveRelatedGuild(int padding_0000, int padding_0004);
int GetMemberAccountId(const char* name);
int GetAgitId(int index);
int CountRelatedGuilds(int unknown_0004);
int CountRelatedGuilds(int padding_0004);
int GetAgitCount();
void Init();
bool HasRelatedGuild(int unknown_0000);
bool HasRelatedGuild(int padding_0000);
void UpdateMemberExpRatios();
int DeleteMember(const char* name);
void UpdateMemberStatus(int accountId, int online, int characterId, short unknown_002C, short unknown_0020, short unknown_0024);
void UpdateMemberStatus(int accountId, int online, int characterId, short padding_002C, short padding_0020, short padding_0024);
void SetMemberOnline(int accountId, int online);
void SetMasterCharacterId(int characterId);
void UpdatePosition(Unknown00D4Entry entry);

View file

@ -62,11 +62,11 @@ enum InterfaceHotkey : int {
HK_COSEQUIPWND_ONOFF = 56,
HK_PARTYBOARDWND_ONOFF = 57,
HK_HUNTINGQUEST_INFO_ONOFF = 58,
HK_UNKNOWN_62 = 62,
HK_UNKNOWN_64 = 64,
HK_UNKNOWN_65 = 65,
HK_UNKNOWN_66 = 66,
HK_UNKNOWN_67 = 67,
HK_HIDDEN_62 = 62,
HK_HIDDEN_64 = 64,
HK_HIDDEN_65 = 65,
HK_HIDDEN_66 = 66,
HK_HIDDEN_67 = 67,
};
enum MacroHotkey : int {

View file

@ -27,19 +27,19 @@ namespace {
if (index == HK_HUNTINGQUEST_INFO_ONOFF) {
return true;
}
if (index == HK_UNKNOWN_62) {
if (index == HK_HIDDEN_62) {
return true;
}
if (index == HK_UNKNOWN_64) {
if (index == HK_HIDDEN_64) {
return true;
}
if (index == HK_UNKNOWN_66) {
if (index == HK_HIDDEN_66) {
return true;
}
if (index == HK_UNKNOWN_65) {
if (index == HK_HIDDEN_65) {
return true;
}
if (index == HK_UNKNOWN_67) {
if (index == HK_HIDDEN_67) {
return true;
}
if (index == HK_BUTTONS_RELOCATE) {

View file

@ -17,19 +17,19 @@ struct RawItemData {
/* 0018 */ std::uint32_t type;
/* 001C */ std::uint32_t refiningLevel;
/* 0020 */ unsigned char identified;
/* 0021 */ unsigned char unknown_0021[27];
/* 0021 */ unsigned char padding_0021[27];
/* 003C */ std::string itemId;
/* 0054 */ unsigned char skillNameAndLevel[28];
/* 0070 */ std::uint32_t cards[4];
/* 0080 */ unsigned char unknown_0080[8];
/* 0080 */ unsigned char padding_0080[8];
/* 0088 */ std::int32_t optionCount;
/* 008C */ unsigned char options[25];
/* 00A5 */ unsigned char unknown_00A5[7];
/* 00A5 */ unsigned char padding_00A5[7];
/* 00AC */ std::int16_t grade;
/* 00AE */ unsigned char hasIndex;
/* 00AF */ unsigned char unknown_00AF;
/* 00AF */ unsigned char padding_00AF;
/* 00B0 */ std::uint32_t location;
/* 00B4 */ std::uint32_t unknown_00B4;
/* 00B4 */ std::uint32_t padding_00B4;
/* 00B8 */ std::uint32_t sprite;
};

View file

@ -780,14 +780,14 @@ __declspec(noinline) void LoadItemNameTables() {
}
}
ITEM_DESC& unknown = FindItemDescription(0, g_itemDescriptions);
unknown.identifiedName = "Unknown Item";
unknown.identifiedResource = "\xbb\xe7\xb0\xfa";
unknown.identifiedDescription.push_back("Unknown Item");
unknown.unidentifiedName = "Unknown Item";
unknown.unidentifiedResource = "\xbb\xe7\xb0\xfa";
unknown.unidentifiedDescription.push_back("Unknown Item");
FindItemDescription(-1, g_itemDescriptions) = unknown;
ITEM_DESC& unknownItemDesc = FindItemDescription(0, g_itemDescriptions);
unknownItemDesc.identifiedName = "Unknown Item";
unknownItemDesc.identifiedResource = "\xbb\xe7\xb0\xfa";
unknownItemDesc.identifiedDescription.push_back("Unknown Item");
unknownItemDesc.unidentifiedName = "Unknown Item";
unknownItemDesc.unidentifiedResource = "\xbb\xe7\xb0\xfa";
unknownItemDesc.unidentifiedDescription.push_back("Unknown Item");
FindItemDescription(-1, g_itemDescriptions) = unknownItemDesc;
ItemCardName& sorry = FindItemCardName(0, g_itemCardNames);
sorry.name = "sorry";

Some files were not shown because too many files have changed in this diff Show more