rodecomp/Source/Contents/Actors/CharacterRender.h
ragnarok-clanker 2fa3c6677c Maintenance: [forced, user-approved] Family W2: remove invented SpriteDrawingPolicy and AccessoryLayerDepth reference structs; their
Batch #10252 by ragnarok-clanker: forced by an admin (1 lower score(s), 10 changed function(s)); checked with 11 compiled unit(s), including every includer of Source/Contents/Actors/CharacterRender.h, Source/Contents/Actors/SpriteDrawingPolicy.h.
Deletes: Source/Contents/Actors/SpriteDrawingPolicy.h
2026-11-03 12:41:12 +00:00

91 lines
3.2 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 unknown0068, int unknown006C);
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 unknown_0004;
/* 0008 */ int unknown_0008;
/* 000C */ int unknown_000C;
/* 0010 */ int unknown_0010;
/* 0014 */ int unknown_0014;
/* 0018 */ int unknown_0018[4];
/* 0028 */ int unknown_0028;
/* 002C */ int unknown_002C;
/* 0030 */ int unknown_0030;
/* 0034 */ int unknown_0034;
/* 0038 */ int unknown_0038;
/* 003C */ int unknown_003C;
/* 0040 */ int unknown_0040;
/* 0044 */ int unknown_0044;
/* 0048 */ int unknown_0048;
/* 004C */ unsigned char unknown_004C;
/* 0050 */ int unknown_0050;
/* 0054 */ float unknown_0054;
/* 0058 */ float unknown_0058;
/* 005C */ int unknown_005C;
/* 0060 */ int unknown_0060;
/* 0064 */ int unknown_0064;
/* 0068 */ int unknown_0068;
/* 006C */ int unknown_006C;
/* 0070 */ float unknown_0070;
/* 0074 */ float unknown_0074;
/* 0078 */ float unknown_0078;
/* 007C */ float unknown_007C;
/* 0080 */ float unknown_0080;
/* 0084 */ float unknown_0084;
/* 0088 */ float unknown_0088;
/* 008C */ float unknown_008C;
/* 0090 */ int unknown_0090;
/* 0094 */ int unknown_0094[5];
/* 00A8 */ int unknown_00A8;
/* 00AC */ int unknown_00AC;
/* 00B0 */ unsigned char unknown_00B0;
/* 00B4 */ std::map<int, int> unknown_00B4;
/* 00BC */ int unknown_00BC;
/* 00C0 */ bool unknown_00C0;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CCharacterRender, unknown_0068) == 0x68);
static_assert(offsetof(CCharacterRender, unknown_008C) == 0x8C);
static_assert(offsetof(CCharacterRender, unknown_00B4) == 0xB4);
static_assert(sizeof(CCharacterRender) == 0xC4);
#endif
#endif