#ifndef RAGNAROK_SOURCE_CLIENT_MODE_CGAMEMODE_H #define RAGNAROK_SOURCE_CLIENT_MODE_CGAMEMODE_H #include "Client/Mode/CMode.h" #include "Client/Mode/ModeDragState.h" #include "Contents/ActorNameCard.h" #include #include #include #include #include #include #include #include class CView; class UIBroadcastBalloon; class CMousePointer; class CCorpse; class CMsgEffect; class CGameActor; class CPlayer; class CRenderObject; struct ActorNameAllPacket; struct ActorNameTitlePacket; struct PlayerNameUpdatePacket; struct GameOptionEntry; struct CWorld; struct RenewQuestOngoingInfo; struct TextureRegion; struct vector3d; struct MiniMapMember { /* 0000 */ int x; /* 0004 */ int y; /* 0008 */ std::uint32_t color; }; struct GameModeLoopSound { /* 0000 */ std::string name; /* 0018 */ std::uint32_t npcId; /* 001C */ std::uint32_t term; /* 0020 */ std::uint32_t nextTick; }; struct MiniMapPing { /* 0000 */ int x; /* 0004 */ int y; /* 0008 */ int persistent; /* 000C */ std::uint32_t color; /* 0010 */ std::uint32_t tick; }; struct MinimapMarker { /* 0000 */ std::int16_t unknown_0000; /* 0002 */ std::int16_t unknown_0002; /* 0004 */ std::int16_t unknown_0004; /* 0006 */ std::int16_t unknown_0006; }; class CGameMode : public CMode { public: CGameMode(); /* 0058 */ unsigned char unknown_0058[0x10]; /* 0068 */ char mapName[16]; /* 0078 */ unsigned char unknown_0078[0xC]; /* 0084 */ std::vector unknown_0084; /* 0090 */ unsigned char unknown_0090[0x3C]; /* 00CC */ CWorld* scene; /* 00D0 */ CView* camera; /* 00D4 */ CMousePointer* mousePointer; /* 00D8 */ unsigned char unknown_00D8[0x24]; /* 00FC */ int unknown_00FC; /* 0100 */ unsigned char unknown_0100[0x18]; /* 0118 */ std::string unknown_0118; /* 0130 */ unsigned char unknown_0130[0x30]; /* 0160 */ CActorNameCardHolder nameCard; /* 0194 */ std::map unknown_0194; /* 019C */ std::map> unknown_019C; /* 01A4 */ std::list unknown_01A4; /* 01AC */ std::map unknown_01AC; /* 01B4 */ std::map unknown_01B4; /* 01BC */ std::map unknown_01BC; /* 01C4 */ std::map unknown_01C4; /* 01CC */ unsigned char unknown_01CC[0x18]; /* 01E4 */ std::vector loopSounds; /* 01F0 */ std::map minimapMarkers; /* 01F8 */ unsigned char unknown_01F8[0x54]; /* 024C */ int unknown_024C; /* 0250 */ int unknown_0250; /* 0254 */ unsigned char unknown_0254[0x40]; /* 0294 */ char unknown_0294[0x20]; /* 02B4 */ UIWindow* itemWindow; /* 02B8 */ unsigned char unknown_02B8[0x1C]; /* 02D4 */ int unknown_02D4; /* 02D8 */ unsigned char unknown_02D8[0x04]; /* 02DC */ int unknown_02DC; /* 02E0 */ int unknown_02E0; /* 02E4 */ unsigned char unknown_02E4[0x08]; /* 02EC */ std::string unknown_02EC; /* 0304 */ unsigned char unknown_0304[0x04]; /* 0308 */ ModeDragState drag; /* 03C8 */ std::string unknown_03C8; /* 03E0 */ std::string unknown_03E0; /* 03F8 */ int unknown_03F8; /* 03FC */ int unknown_03FC; /* 0400 */ int unknown_0400; /* 0404 */ int unknown_0404; /* 0408 */ void* unknown_0408; /* 040C */ int unknown_040C; /* 0410 */ unsigned char unknown_0410[0x04]; /* 0414 */ int unknown_0414; /* 0418 */ unsigned char unknown_0418[0x40]; /* 0458 */ int unknown_0458; /* 045C */ unsigned char unknown_045C[0x08]; /* 0464 */ int unknown_0464; /* 0468 */ unsigned char unknown_0468[0x74]; /* 04DC */ std::string unknown_04DC; /* 04F4 */ unsigned char unknown_04F4[0xC8]; /* 05BC */ int chatLogLines; /* 05C0 */ unsigned char unknown_05C0[0x04]; /* 05C4 */ int unknown_05C4; /* 05C8 */ int unknown_05C8; /* 05CC */ unsigned char unknown_05CC[0x02]; /* 05CE */ unsigned char unknown_05CE; /* 05CF */ unsigned char unknown_05CF; /* 05D0 */ UIWindow* unknown_05D0; /* 05D4 */ unsigned char unknown_05D4[0x14]; /* 05E8 */ std::uint32_t replayPauseTick; /* 05EC */ unsigned char unknown_05EC[0x18]; /* 0604 */ std::list unknown_0604; /* 060C */ unsigned char unknown_060C[0x10]; /* 061C */ UIBroadcastBalloon* broadcastBalloon; /* 0620 */ unsigned char unknown_0620[0x8]; /* 0628 */ std::unordered_set unknown_0628; /* 0648 */ unsigned char unknown_0648[0x28]; std::string MapName(); UIBroadcastBalloon* EnsureBroadcastBalloon(); std::string GetUnknown0084(unsigned int index); void RequestPlayerAction(int target, int argument); void UpdateLoopSounds(); void AddSceneObject(CRenderObject* object); void SendMousePointerPosition(float x, float y, int value); void WriteChatLog(const char* text); bool IsEffectId990Group(int id); bool IsEffectId994Group(int id); bool ConfirmDraggedItemUse(); void sub_CFE480(int actorId); void NotifyUnknown0604(int value); void UpdatePetFriendlyWindow(int previousFriendly); bool SaveEmblemFile(const std::vector& data); void SendNpcInputText(std::uint32_t npcId, const char* text, const char* replacement); std::string HuntTargetText(const RenewQuestOngoingInfo& quest, int index); std::vector SaveActiveSkillEffects(); std::vector SaveUnknown024C(); void WorldCell(float x, float z, int& column, int& row) const; void SubcellPosition(int column, int row, int subColumn, int subRow, float& x, float& z) const; void PlayerCell(int* column, int* row) const; void RefreshActorJobEffects(bool playerOnly); int GetSkillAttackRange(int id, int level); int TerrainHeight() const; int TerrainWidth() const; std::string LocationText(); bool HasInventoryItem(int id); bool HasResurrectionItem(); void SendMousePointerState(int value); bool CanFindPath(int sx, int sy, int cellX, int cellY, int dx, int dy); bool IsAllowedPair(int kind, int value); bool IsWithinRange(const int& x1, const int& y1, const int& x2, const int& y2, int range); bool IsRegisterCell(int x, int y); bool HasUnknown01A4(int value); bool IsValidCell(int x, int y); bool GetClosestValidCell(int* x, int* y); void ReceiveActorNameAll(const ActorNameAllPacket* packet); void ReceiveActorNameTitle(const ActorNameTitlePacket* packet); void ReceivePlayerNameUpdate(const PlayerNameUpdatePacket* packet); void ReceiveColoredNotice(const unsigned char* packet); void ReceiveNamedActionResult(const unsigned char* packet); void ReceiveStatDump(const unsigned char* packet); void ReceiveActorText(const unsigned char* packet); void ReceiveRentalItemTime(const unsigned char* packet); void ReceiveEquipWindowMicroscope(const unsigned char* packet); void ReceiveMemorialDungeonInfo(const unsigned char* packet); void ReceiveMemorialDungeonNotify(const unsigned char* packet); void ReceiveMemorialDungeonSubscriptionInfo(const unsigned char* packet); void ReceiveMemorialDungeonSubscriptionNotify(const unsigned char* packet); void ReceiveWindow17Entries(const unsigned char* packet); void ReceiveActorSequenceDeadline(const unsigned char* packet); void ReceiveActorSignal(const unsigned char* packet); void IgnorePacket(const unsigned char* packet); void SetWindow16Align(unsigned char align); void IgnorePacket473(const unsigned char* packet); void IgnorePacket474(const unsigned char* packet); void IgnorePacket478(const unsigned char* packet); void ClearUnknown0244(const unsigned char* packet); void ReceiveActorStatusBlock(const unsigned char* packet); void ReceiveActorStatusUpdate(const unsigned char* packet); void ReceiveActorTitle(const unsigned char* packet); void ReceiveActorInt8(const unsigned char* packet); void ReceiveActorInt64Pair(const unsigned char* packet); void ReceiveItem1740EquipList(const unsigned char* packet); void ReceiveItem1740EquipListOptions(const unsigned char* packet); void ReceiveItem1738EquipList(const unsigned char* packet); void ReceiveItem1738EquipListOptions(const unsigned char* packet); void ReceiveItem1738NormalList(const unsigned char* packet); void ReceiveHomunculusProperty64(const unsigned char* packet); void ReceiveHomunculusProperty(const unsigned char* packet); void ReceiveHuntingList(const unsigned char* packet); void ReceiveEquipAck(const unsigned char* packet); void ReceiveToggleNotice(const unsigned char* packet); void ReceiveSound(const unsigned char* packet); void ReceivePendingResult(const unsigned char* packet); void ReceiveNoticeResult14(const unsigned char* packet); void ReceivePetAct(unsigned char* packet); void PlayBgm(unsigned char type, std::string name); void ReceiveNpcBgm(const unsigned char* packet); void IgnoreRemovedPacket1(const unsigned char* packet); void ReceivePlayerMessage82(const unsigned char* packet); void ReceiveResultNotice00FC(const unsigned char* packet); void IgnoreRemovedPacket2(const unsigned char* packet); void ReceiveBillingInfo(const unsigned char* packet); void ReceiveActorMessage32(const unsigned char* packet); void ReceiveStatusNotice(const unsigned char* packet); void ReceivePartyBookingRegisterResult(const unsigned char* packet); void ReceivePartyBookingSearchResult(const unsigned char* packet); void ReceivePartyBookingDelete(const unsigned char* packet); void ReceivePartyBookingInsert(const unsigned char* packet); void ReceivePartyBookingUpdate(const unsigned char* packet); void ReceivePartyBookingUpdateResult(const unsigned char* packet); void ReceiveItem1718BasicList(const unsigned char* packet); void ReceiveItem1718Result(const unsigned char* packet); void ReceiveItem1718IndexList(const unsigned char* packet); void NotifyResult2571(int result); void ReceiveHomunculusInfo(const unsigned char* data); void ReceiveHomunculusInfo2(const unsigned char* data); void ReceiveHomunculusInfo3(const unsigned char* data); void ReceiveMinimapMarker(const unsigned char* data); void ReceiveBookOpen(const unsigned char* packet); void ReceiveActorNameCard(const unsigned char* packet); void ReceiveServiceRequest(unsigned char type, int value); void ReceiveAchievementResult(unsigned char result, int id); void ReceiveRuneRewardPacket(const unsigned char* packet); void ReceiveRuneGradeResult(int result, int tagId, int type, std::int64_t id, int grade, int gradeLevel); void SpawnSkillWarningPlanes(std::uint32_t aid, std::uint16_t skillId, int level, std::int16_t x, std::int16_t y, int duration); void ReceiveRodexMailDeleteResult(int mailId, int result); void ReceiveItemReward2(const unsigned char* data); void ReceiveItemReward(const unsigned char* data); void ReceiveWindow181Message(const unsigned char* packet); void ReceiveNamedResultNotice(const unsigned char* packet); void ReceiveResultNotice0118(const unsigned char* packet); bool NotifyItemResult(int result); void NotifyItemBounds(); CCorpse* SpawnCorpse(float x, float y, float z, const char* action, const char* sprite, int animation, int motion, float angle); bool LaunchTargetEffect(int effectId, CGameActor* source, CGameActor* target, int argument); void ShowGuildEmblem(CGameActor* actor, int guildId, int unused); void RemoveUnknown0604(int window); void DrawMiniMapNumber(); void DrawTimeAttackTimer(); void DrawTimeAttackCountdown(std::uint32_t value, int mode); CMsgEffect* SpawnCashEmotion(int aid, int packId, int emotionId, std::uint32_t duration); CMsgEffect* SpawnDamageMsgEffect(const vector3d* position, std::uint32_t color, std::uint32_t accountId); CMsgEffect* SpawnMsgEffect(int effectId, const vector3d* position, std::uint32_t accountId, bool visible); void ApplyMapFog(int enabled); void SpawnGrannyCorpse(float x, float y, float z, float angle, const char* name); void SpawnMandraAttack(std::uint32_t aid, int target, char flag); std::uint32_t FindUnknown01AC(std::uint32_t key); std::string ActorName(std::uint32_t id); std::uint32_t ActorNameColor(int job, std::uint32_t aid); const CActorNameCard& LookupNameCard(std::uint32_t id); const char* DragItemName(); void PushUnknown01A4(int value); bool IsOverWeight(bool notify); void CompleteUnknown0194(std::uint32_t id, const std::string& text); std::string GetActiveSkillEffectTimeText(int skillId, int* activeSkillId); bool IsActiveSkillEffectId(std::uint32_t id); bool IsExcludedSkillEffectId(std::uint32_t id); int SubD07740(int id, int defaultResult); bool AppendGuildEmblem(std::vector& output, std::vector& names, int guildId, int unused); void ReceiveResultNotice(int result); void RefreshWindow16(const unsigned char* packet); void ReceiveWindow154Close(std::int16_t value); void MoveWindow16(int x, int y); void ResizeWindow16(int width, int height); void ReceiveNotice1950(const unsigned char* packet); void ReceiveActorPairFreeze(const unsigned char* packet); void ReceiveEffectRemove(const unsigned char* packet); void ReceiveActorEffect347(const unsigned char* packet); void ReceiveUnknown0294Text(const unsigned char* packet); void ReceiveToggle128(int enabled); void PlaceWindow16(unsigned int xPercent, unsigned int yPercent); void ReceiveUnknown7FBC(const unsigned char* packet); void ReceiveActorMessage144(const unsigned char* packet); void StopActorMove(std::uint32_t aid, std::int16_t x, std::int16_t y, unsigned char flag); void NotifyResult4138(int result); void NotifyResult2877(int result); void ReceiveRodexMailDeleted(const unsigned char* packet); void NotifyResult3562(const unsigned char* packet); void IgnoreRemovedPacket6(); void ReceiveRouletteResult(const unsigned char* packet); void NotifyResult4013(unsigned char result, unsigned short value); void ReceiveGuildUnknown0114List(const unsigned char* packet); void ReceiveClanLeave(const unsigned char* packet); void ReceiveClanInfo(const unsigned char* packet); void ReceiveGameOptions(int count, const GameOptionEntry* entries); void ReceiveActorClanName(const unsigned char* packet); void ReceiveClanMemberCount(const unsigned char* packet); void ReceiveGuildEmblemVersion(std::uint32_t aid, int guildId, int emblemVersion); int RejectRequest(int, int, int, int, int); void EnsureWindow259(const unsigned char* packet); void ReceiveRuneActivation(const unsigned char* packet); void ReceiveRuneSetGrades(const unsigned char* packet); void ReceiveRuneRewardResult(int result, int tagId, std::int64_t id, int step); void ReceiveRuneRewardSteps(const unsigned char* packet); int HandleRuneResult(int result); void ApplyRuneSetResult(int result, int tagId, int runeSetId); void ApplyRuneSetResultWithRequest(int result, int tagId, int runeSetId, int grade, int slotCount); std::uint64_t LaunchDummyEffect(const vector3d* position, int effectId, int lifeFrames, int value); void NotifyWindow4F258(int result); void ReceiveNamedResult(std::uint32_t aid, std::string name, int result); void ReceiveBasicInfoResult(unsigned char result); void ReceiveUnknown0454Result(const unsigned char* packet); std::string MakeSimulatorFolder(const std::string& folder); std::FILE* OpenPackageSimulatorFile(const std::string& folder, int itemId, std::string& itemName); std::FILE* OpenSimulatorFile(const std::string& folder, const std::string& name); void ReceiveRandomUpgradeSimulation(const unsigned char* packet); void ReceiveEnchantSimulation(const unsigned char* packet); void ReceivePackageSimulation(const unsigned char* packet); void ReceiveWindow154Result(std::int16_t value); void ReceivePlayerDuration(const unsigned char* packet); void ReceiveFailureNotice(const unsigned char* packet); void ReceiveServerRateNotice(const unsigned char* packet); void ReceiveRequestResult(const unsigned char* packet); void ReceivePackageItemTest(const unsigned char* packet); void ReceiveDeferredReset(const unsigned char* packet); void ReceiveGradeEnchantResult(const unsigned char* packet); void UpdateUnknown0628(int id, bool add); void ClearUnknown0458(); void SetDragIds(int source, int id); const char* Unknown04DCText(); CPlayer* Player(); MinimapMarker* FindMinimapMarker(std::uint32_t key); float CameraDesiredYaw(); void IgnoreRemovedPacket3(const unsigned char* packet); void ReceiveShowRankingSchedule(const unsigned char* packet); void IgnoreRemovedPacket4(const unsigned char* packet); void IgnoreRemovedPacket5(const unsigned char* packet); void IgnoreRemovedPacket7(const unsigned char* packet); void IgnoreRemovedPacket8(); void IgnoreRemovedPacket9(); void sub_D079A0(unsigned char kind, int argument); void sub_D08390(const unsigned char* packet); void IgnoreRemovedPacket10(const unsigned char* packet); void IgnoreRemovedPacket11(const unsigned char* packet); void IgnoreRemovedPacket12(const unsigned char* packet, int value1, int value2, int value3, int value4); void ToggleWindow169(unsigned char enable); void RequestWindow169(unsigned char enable); void ShowNoticeText(std::string text); void ReceiveItem1738Add(const unsigned char* packet); void ReceiveItem1738AddOptions(const unsigned char* packet); void ReceiveItem1738AddGrade(const unsigned char* packet); void ReceiveItem1740Add(const unsigned char* packet); void ReceiveItem1740AddOptions(const unsigned char* packet); void ReceiveItem1740AddGrade(const unsigned char* packet); void ReceiveItem1740BasicList(const unsigned char* packet); void ReceiveItem1740BasicListBind(const unsigned char* packet); void ReceiveItemInventoryList(const unsigned char* packet); void ReceiveUnknown05C4Result(const unsigned char* packet); void ReceiveHpSpRecovery(const unsigned char* packet, int variant); void ReceiveUnknown173A5BC(const unsigned char* packet); void ReceiveUnknown16FC588(const unsigned char* packet); void ReceiveShopItemList(const unsigned char* data); void ReceiveUnknownD26800(const unsigned char* packet); void ReceiveUnknownD79660(const unsigned char* packet); void ReceiveUnknownD79E90(std::int16_t result, std::intptr_t value); void ReceiveRouletteSetResult(const unsigned char* packet); void ReceiveDynamicNpcNotice(const unsigned char* packet); void ReceiveUnknownD612A0(const unsigned char* packet); void ReceiveUnknownD77BF0(const unsigned char* packet); void ReceiveUnknownD264E0(const unsigned char* packet); void ResetItemLists(const unsigned char* packet); void StepTowardWalkableCell(const int& targetX, const int& targetY, int& x, int& y); void FindWalkableCellToward(float x, float z, float originX, float originZ, int& column, int& row, int distance); void RemoveMiniMapPing(std::uint32_t id); void DrawMiniMapMembers(const TextureRegion& view); void DrawMiniMapTriangle(float x, float y, float size, std::uint32_t color); void DrawMiniMapMarker( const TextureRegion& view, int x, int y, int size, std::string texture, int kind, std::uint32_t color, bool clamp ); void DrawMiniMapCoordinates(); void ReceiveGradeEnchantInfo(const unsigned char* packet); void ReceivePartyItemPickup(const unsigned char* packet); void ReceiveShortcutPagePacket(const unsigned char* packet); void ReceiveCardCompositionResult(const unsigned char* packet); void ReceiveRefineResult(const unsigned char* packet); void ReceiveItemEffectResult(const unsigned char* packet); void NotifyResult3995(unsigned char result); void ReceiveActorEffect228(const unsigned char* packet); void ResendMinimapMarkers(); void ReceiveJobTitle(unsigned char result, int job); void ReceiveQuestStates(int count, const unsigned char* entries); void ReceiveMessageBox(const unsigned char* packet); void NotifyCaptchaRegistered(); void ReceiveItem1784List(const unsigned char* packet); void ReceiveItemListPart(unsigned char listType, int count, const unsigned char* data); void ReceiveEquipListPart(unsigned char listType, int count, const unsigned char* data); void ClearItemLists(const unsigned char* packet); void RefreshItemListWindow(unsigned char listType, bool partial); void ClearUnknown04DC(); void SetFollowTicks(int updateTick, int lostTick); bool IsMenuWindowOpen() const; bool ShowRestrictedNotice(int grade); void AddUnknown0604(UIWindow* window); void RequestAdminStatus(); void sub_CEB8E0(); unsigned sub_CEBF30(const std::vector& data); unsigned sub_CEC100(const std::vector& data); unsigned sub_CEC6A0(const std::vector& data); void sub_D2DB80(const unsigned char* record); void sub_D3D2F0(const unsigned char* record); void sub_D3F130(const unsigned char* record); void sub_D24430(const unsigned char* record); void sub_D350A0(const unsigned char* record); void sub_D37A10(const unsigned char* record); void sub_D40730(const unsigned char* record); void sub_D41250(const unsigned char* record); void sub_D51A90(const unsigned char* record); void sub_D61390(const unsigned char* record); void sub_D616B0(const unsigned char* record); void sub_D619E0(const unsigned char* record); void sub_D63720(const unsigned char* record); void sub_D63A40(const unsigned char* record); void sub_D63D70(const unsigned char* record); void sub_D65FC0(const unsigned char* record); void sub_D7B170( int first, int second, int third, int fourth, int fifth, int sixth, int seventh, int eighth, int ninth, int tenth, int eleventh, int twelfth, int thirteenth, int fourteenth, std::string text, int fifteenth ); void Slot7(int value) override; void PlaceWindowAtActor(UIWindow* window, CGameActor* actor); void ReceiveSummonHpInit(const unsigned char* buffer); void ReceiveSummonHpUpdate(const unsigned char* buffer); void ReceiveGameOptionResult(int command, int result, int enabled); void ReceiveCharViewResult(const unsigned char* packet); void SpawnArrowEffect(std::uint32_t aid, int target, char flag, int argument); void SpawnArrowEffect64(std::uint32_t aid, int target, char flag); void UnusedArrowStub(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j); bool UpdateReplayPause(bool resume); void ReceiveCharacterRenameResult(const unsigned char* packet); void ReceiveLapineUpgradeResult(std::int16_t result); void ReceiveLapineBoxResult(std::uint16_t result); void ReceiveRouletteInfo(const unsigned char* packet); void BeginCaptchaImage(unsigned short size, const char* key); void ReceiveCaptchaImageData(const char* key, const void* data, unsigned short size); void ReceiveWindow99Values(int count, const int* values); void ReceiveMacroBlackListResult(int result); void ReceiveMacroDetectorResult(int result); void ReceiveMacroBlackListCode(unsigned char state, const char* code); void OpenServiceWindow(unsigned char type); void ReceiveWindow328Result(int result, int value); void ReceiveRouletteClose(const unsigned char* packet); void ReceiveWindow227Result(const unsigned char* packet); void ReceiveRouletteOpen(const unsigned char* packet); void ReceiveRodexOpen(const unsigned char* packet); void ReceiveCaptchaPreview(int result, unsigned short size, const char* key); void ReceiveStackedItemReturn(const unsigned char* packet); void ReceiveRodexRecipient(int id, unsigned short job, unsigned short level, const char* name); void ReceiveStatus(const unsigned char* data); void ReceiveStatusChange(const unsigned char* data); void ReceiveStatusChangeAck(const unsigned char* data); void SetActorUnknown02E4(std::uint32_t aid, int value); void IgnoreRemovedPacket13(const unsigned char* packet); void IgnoreRemovedPacket14(const unsigned char* packet); void IgnoreRemovedPacket15(const unsigned char* packet); void IgnoreRemovedPacket16(const unsigned char* packet); void ReceiveItemSlotAddOptions(const unsigned char* data); void ReceiveItemSlotAddGrade(const unsigned char* data); void ReceiveGuildUnknown0114Change(unsigned char value, std::uint32_t removeAid, std::uint32_t addAid); void ReceiveItemOptionsRefresh(const unsigned char* data); void ReceivePartyJobLevel(const unsigned char* packet); void ReceivePartyDead(const unsigned char* packet); void ReceiveShopItemList(const std::vector& items, int value, int unused1, int argument, int unused2, std::uint32_t duration, unsigned char myShop); void ReceivePacket0B2E(short result); void ReceiveBuyingStoreItemList(const unsigned char* packet); void ReceiveUnknownD2A1F0(const unsigned char* packet); void ReceiveActorMessage7(const unsigned char* packet); void ReceiveUnknownD78010(const unsigned char* packet); void ReceiveUnknownD89C60(const unsigned char* packet); void ReceiveEquipItemList(const unsigned char* packet); void ReceiveSwapEquipmentList(const unsigned char* packet); void ReceiveStatusBonus(const unsigned char* packet); void ReceiveGuildMemberList(const unsigned char* packet); void SetActorNameCard(std::uint32_t id, const char* name, const char* value1, const char* value2, const char* value3, int job); void ReceiveShopName(const char* text, int shopId); void ReceiveFriendList(const unsigned char* packet); void ReceiveGuildMemberMemoList(const unsigned char* packet); void sub_D591A0(std::uint32_t aid, int state, int flag, int options); void sub_D5EEF0( const char* first, int second, const char* third, int fourth, unsigned char fifth, std::uint16_t sixth, std::uint16_t seventh, const char* eighth, unsigned char ninth, unsigned char tenth, int eleventh ); void ReceiveLapineBoxIngredient(const unsigned char* packet); void ActivateMacroBlackListCheck(unsigned char state, int duration); void SetMacroDetectorCountdown(unsigned char count, std::uint32_t duration); void ReceiveCaptchaPreviewImage(const char* key, const void* data, unsigned short size); void ReceiveLapineUpgradeBoxValue(int value); void Zc_Trycapture_Monster(const unsigned char* packet); void Zc_Trycollection(const unsigned char* packet); void Zc_Msg(const unsigned char* packet); void Zc_Msg_Color(const unsigned char* packet); void ReceiveRouletteBonusPoints(const unsigned char* packet); void ReceiveActorCharm(const unsigned char* packet); void Zc_Start_Baby(const unsigned char* packet); void Zc_Start_Capture(const unsigned char* packet); void Zc_Start_Collection(const unsigned char* packet); void Zc_Start_Couple(const unsigned char* packet); void IgnorePacket(); void RemoveUnknown01A4(int value); bool RecordReplayMessage(int message, int value, int first, int second); void UpdateReplayActionSpeeds(); struct ReplayTime StopReplayRecording(); void ReceivePacket0AB8(const unsigned char* packet); void ReceivePacket0A29(int value); void ReceiveCashShopBanner(int value1, int value2, int value3); void ReceiveWindow308TextEntries(unsigned char* packet); void ReceiveActorStateValue(std::uint32_t aid, int unused, std::int16_t value); void ReceiveChatEntries(unsigned char* data); void ReceiveWindowItemList(const unsigned char* packet); void ReceivePacket0B73(const unsigned char* data); void ReceiveInventoryItemUpdate(const unsigned char* packet); void ReceiveUnknownD25850(const unsigned char* packet); void ReceiveUnknownD31A40(const unsigned char* packet); void ReceiveActorSkillAction(const unsigned char* packet); void ReceiveActorSkillMessage(const unsigned char* packet); void OpenWindow154(); void ReceiveUnknownD2D990(const unsigned char* packet); void ReceiveUnknownD4E3F0(const unsigned char* packet); void ReceiveUnknownD4E2A0(const unsigned char* packet); void ReceiveItem1740List(const unsigned char* packet); void ReceiveDispel(const unsigned char* packet); void ReceiveItem1758List(const unsigned char* packet); void ReceiveUnknownD50810(const unsigned char* packet); void ReceiveItem1748List(const unsigned char* packet); void ReceiveActorStatusValue(std::uint32_t aid, int status, int amount, int option); void ReceiveItem1718List(const unsigned char* packet); void Zc_Spirits2(const unsigned char* data); void Zc_Mer_Init(const unsigned char* data); void Zc_Mer_Par_Change(const unsigned char* data); void ReceiveTypedNotice(const unsigned char* packet); void ReceiveRodexMailReturn(const unsigned char* packet); void ReceiveActorStatusValuePacket(const unsigned char* packet); void ReceivePartyMemberEffect(const unsigned char* packet); void ShowFormattedNotice(unsigned short messageId, std::uint32_t color, int argument); void ReceiveCaptchaUploadRequest(const std::uint32_t* sessionId, int result); void ReceiveExtraInventoryResult(const unsigned char* packet); void ReceiveWindow348Result(unsigned char result, std::int16_t index); void ReceiveRodexItemReturn(const unsigned char* packet); void ReceiveExpGainNotice(const unsigned char* packet); }; void LaunchRollingCutterEffect(CGameActor* actor); #if defined(_WIN32) && !defined(_WIN64) static_assert(offsetof(CGameMode, mapName) == 0x68); static_assert(offsetof(CGameMode, unknown_0194) == 0x194); static_assert(offsetof(CGameMode, unknown_019C) == 0x19C); static_assert(offsetof(CGameMode, unknown_01A4) == 0x1A4); static_assert(offsetof(CGameMode, unknown_01AC) == 0x1AC); static_assert(offsetof(CGameMode, unknown_0118) == 0x118); static_assert(offsetof(CGameMode, unknown_0084) == 0x84); static_assert(offsetof(CGameMode, scene) == 0xCC); static_assert(offsetof(CGameMode, broadcastBalloon) == 0x61C); static_assert(offsetof(CGameMode, camera) == 0xD0); static_assert(offsetof(CGameMode, nameCard) == 0x160); static_assert(offsetof(CGameMode, unknown_01BC) == 0x1BC); static_assert(offsetof(CGameMode, unknown_01C4) == 0x1C4); static_assert(offsetof(CGameMode, loopSounds) == 0x1E4); static_assert(offsetof(CGameMode, minimapMarkers) == 0x1F0); static_assert(offsetof(CGameMode, unknown_0294) == 0x294); static_assert(offsetof(CGameMode, drag) == 0x308); static_assert(offsetof(CGameMode, unknown_024C) == 0x24C); static_assert(offsetof(CGameMode, unknown_02DC) == 0x2DC); static_assert(offsetof(CGameMode, unknown_05D0) == 0x5D0); static_assert(offsetof(CGameMode, unknown_0604) == 0x604); static_assert(offsetof(CGameMode, unknown_0628) == 0x628); static_assert(sizeof(CGameMode) == 0x670); #endif extern char g_pendingWhisperCount; extern int g_whisperRecord; #endif