rodecomp/Source/Contents/Actors/CharacterRender.h
ragnarok-clanker c932ad6499 Maintenance: Resubmission of 15134 without the 12 struct/type renames (their new names changed mangled symbols in 17 functions). Rena
Batch #15141 by ragnarok-clanker: no function's compiled code changes; checked with 537 compiled unit(s), including every includer of Source/Client/Input/LanguageTC.h, Source/Client/Mode/CGameMode.h, Source/Client/Mode/CLoginMode.h, Source/Client/Replay.h, Source/Client/Session.h, Source/Contents/AchievementMgr.h, Source/Contents/Actors/CharacterRender.h, Source/Contents/Actors/EffectActors.h, Source/Contents/Actors/GameActor.h, Source/Contents/Actors/Pc.h, Source/Contents/EnchantMgr.h, Source/Contents/GuildInfo.h, Source/Contents/Messenger/MessengerWindows.h, Source/Contents/Schedule/TimeScheduler.h, Source/Contents/Sound/SoundMgr.h, Source/Contents/SpriteLayerDrawing.h, Source/Contents/TableMng.h, Source/Contents/World/SkyBox.h, Source/UI/Chat/UINewChatWnd.h, Source/UI/Text/CreateLineInfo.h, Source/UI/UIGradeEnchantWnd.h, Source/UI/Window/UINewSelectCharWnd.h, Source/UI/Window/UINewSkillListWnd.h, Source/UI/Window/UIPetInfoWnd.h, Source/UI/Window/UIReplayRECControlWnd.h, Source/UI/Window/UIWindowMgr.h, Source/UI/Window/UIWindowMgr.inl.
2026-11-09 12:21:09 +00:00

91 lines
3.1 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_ACTORS_CHARACTERRENDER_H
#define RAGNAROK_SOURCE_CONTENTS_ACTORS_CHARACTERRENDER_H
#include <cstddef>
#include <cstdint>
#include <list>
#include <map>
class CActRes;
struct CharacterRenderDrawItem;
struct RenderPrimitive;
struct SpriteCellQuad;
struct SpriteColor;
struct SpriteFrameCell;
struct SpriteRleImage;
struct tagRECT;
class CCharacterRender {
public:
CCharacterRender(int width, int renderHeight);
virtual ~CCharacterRender();
void RenderRobe(
std::list<RenderPrimitive*>& primitives, bool drawOnTop, const void*, int& layer, const float* position, float x, float y, float scale,
float shift, float, CActRes* baseAct
);
void RenderRobeCommands(
std::list<CharacterRenderDrawItem>& commands, bool drawOnTop, const void*, int& layer, const float* position, float x, float y, float scale,
float shift, float
);
std::list<CharacterRenderDrawItem> BuildDrawList(unsigned char trackBounds, char* boundsUpdated);
bool DrawOnTop() const;
bool SetRobe(int robe);
bool ProjectCell(
int unused, int layer, float scale, const SpriteFrameCell& cell, float x, float y, const float* position, float shift, float& bottomDepth,
float& topDepth, const SpriteRleImage& image, SpriteCellQuad& quad, tagRECT& bounds, SpriteColor& color, int offsetX, int offsetY, int flags
) const;
void OffsetLayerDepth(int layer, SpriteCellQuad& quad, float bottomDepth, float topDepth) const;
void OffsetAccessoryLayerDepth(int layer, SpriteCellQuad& quad, float bottomDepth, float topDepth) const;
RenderPrimitive* DrawShadow(const float* matrix, float scale) const;
/* 0004 */ int positionX;
/* 0008 */ int positionY;
/* 000C */ int positionZ;
/* 0010 */ int job;
/* 0014 */ int headJob;
/* 0018 */ int appearance[4];
/* 0028 */ int lowerHeadgear;
/* 002C */ int upperHeadgear;
/* 0030 */ int middleHeadgear;
/* 0034 */ int lowerHeadgearLocation;
/* 0038 */ int upperHeadgearLocation;
/* 003C */ int middleHeadgearLocation;
/* 0040 */ int actionIndex;
/* 0044 */ int frameIndex;
/* 0048 */ int madogearType;
/* 004C */ unsigned char riding;
/* 0050 */ int bodyCostume;
/* 0054 */ float viewportOffsetX;
/* 0058 */ float viewportOffsetY;
/* 005C */ int bodyBlend;
/* 0060 */ int bodyCellX;
/* 0064 */ int bodyCellY;
/* 0068 */ int viewportWidth;
/* 006C */ int viewportHeight;
/* 0070 */ float cameraDistance;
/* 0074 */ float cameraPitch;
/* 0078 */ float cameraYaw;
/* 007C */ float unknown_007C;
/* 0080 */ float unknown_0080;
/* 0084 */ float unknown_0084;
/* 0088 */ float cameraUpX;
/* 008C */ float cameraUpY;
/* 0090 */ int cameraUpZ;
/* 0094 */ int renderBounds[5];
/* 00A8 */ int screenX;
/* 00AC */ int screenY;
/* 00B0 */ unsigned char drawShadow;
/* 00B4 */ std::map<int, int> layerViews;
/* 00BC */ int robe;
/* 00C0 */ bool isHelmRobe;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CCharacterRender, viewportWidth) == 0x68);
static_assert(offsetof(CCharacterRender, cameraUpY) == 0x8C);
static_assert(offsetof(CCharacterRender, layerViews) == 0xB4);
static_assert(sizeof(CCharacterRender) == 0xC4);
#endif
#endif