Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,17 @@
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"C_Cpp.default.defines": [
"IEEE_LIBM",
"REVOLUTION",
"PACK_SPORTS",
],
"C_Cpp.default.defines": ["IEEE_LIBM", "REVOLUTION", "PACK_SPORTS"],
// "editor.tabSize": 4,
"files.autoSave": "onFocusChange",
// "files.autoSave": "onFocusChange",
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"files.associations": {
"*.inc": "c",
"*.pch": "c",
"*.pch++": "cpp",
".clangd": "yaml",
".clangd": "yaml"
},
// Disable C/C++ IntelliSense, use clangd instead
"C_Cpp.intelliSenseEngine": "disabled",
"C_Cpp.intelliSenseEngine": "disabled"
}
24 changes: 12 additions & 12 deletions config/RSPE01_01/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7550,18 +7550,18 @@ fn_8019C4B4 = .text:0x8019C4B4; // type:function size:0x20
fn_8019C4D4 = .text:0x8019C4D4; // type:function size:0x24C
fn_8019C720 = .text:0x8019C720; // type:function size:0x24
fn_8019C744 = .text:0x8019C744; // type:function size:0x8
fn_8019C74C = .text:0x8019C74C; // type:function size:0x2F0
fn_8019CA3C = .text:0x8019CA3C; // type:function size:0x1A4
fn_8019CBE0 = .text:0x8019CBE0; // type:function size:0xB14
Construct__16RPSysKokeshiIconFv = .text:0x8019C74C; // type:function size:0x2F0
ModifyBgColor__16RPSysKokeshiIconFRC20RPSysKokeshiLocationUsUs9_GXTexFmt13RFLIconBGType8_GXColor = .text:0x8019CA3C; // type:function size:0x1A4
MakeEdge__16RPSysKokeshiIconFv = .text:0x8019CBE0; // type:function size:0xB14
__dt__12RPGrpTextureFv = .text:0x8019D6F4; // type:function size:0x40
fn_8019D734 = .text:0x8019D734; // type:function size:0x31C
fn_8019DA50 = .text:0x8019DA50; // type:function size:0x280
fn_8019DCD0 = .text:0x8019DCD0; // type:function size:0x4
MakeTexture__16RPSysKokeshiIconFP10RPGrpModelRC20RPSysKokeshiLocationPQ23EGG9AllocatorUsUs9_GXTexFmt13RFLIconBGType8_GXColorQ219RPSysKokeshiManager8IconView = .text:0x8019D734; // type:function size:0x31C
SetupCamera__16RPSysKokeshiIconFQ34nw4r3g3d6CameraUsUsQ219RPSysKokeshiManager8IconView = .text:0x8019DA50; // type:function size:0x280
ApplyLightTexture__16RPSysKokeshiIconFUc = .text:0x8019DCD0; // type:function size:0x4
GetResTIMG__16RPSysKokeshiIconFv = .text:0x8019DCD4; // type:function size:0x8
fn_8019DCDC = .text:0x8019DCDC; // type:function size:0xFC
fn_8019DDD8 = .text:0x8019DDD8; // type:function size:0x4
fn_8019DDDC = .text:0x8019DDDC; // type:function size:0x58
fn_8019DE34 = .text:0x8019DE34; // type:function size:0x44
SetupModel__16RPSysKokeshiIconFP10RPGrpModel = .text:0x8019DCDC; // type:function size:0xFC
LoadResource__16RPSysKokeshiIconFPC24RPSysKokeshiOverloadInfo = .text:0x8019DDD8; // type:function size:0x4
__dt__16RPSysKokeshiIconFv = .text:0x8019DDDC; // type:function size:0x58
__ct__16RPSysKokeshiIconFPC19RPSysKokeshiGenInfo = .text:0x8019DE34; // type:function size:0x44
__dt__19RPSysKokeshiGenInfoFv = .text:0x8019DE78; // type:function size:0x5C
__ct__19RPSysKokeshiGenInfoFv = .text:0x8019DED4; // type:function size:0xB4
__dt__20RPSysKokeshiLocationFv = .text:0x8019DF88; // type:function size:0x40
Expand Down Expand Up @@ -18608,7 +18608,7 @@ __vt__11RPSysAvatar = .data:0x803B9C08; // type:object size:0x14
lbl_803B9C20 = .data:0x803B9C20; // type:object size:0x10
lbl_803B9C30 = .data:0x803B9C30; // type:object size:0x18
lbl_803B9C48 = .data:0x803B9C48; // type:object size:0x38
lbl_803B9C80 = .data:0x803B9C80; // type:object size:0x18
__vt__16RPSysKokeshiIcon = .data:0x803B9C80; // type:object size:0x18
__vt__19RPSysKokeshiGenInfo = .data:0x803B9C98; // type:object size:0xC
__vt__20RPSysKokeshiLocation = .data:0x803B9CA8; // type:object size:0xC
__vt__24RPSysKokeshiOverloadInfo = .data:0x803B9CB8; // type:object size:0xC
Expand Down Expand Up @@ -20451,7 +20451,7 @@ lbl_804BDBAC = .sdata:0x804BDBAC; // type:object size:0x4 data:4byte
lbl_804BDBB0 = .sdata:0x804BDBB0; // type:object size:0x8 data:4byte
lbl_804BDBB8 = .sdata:0x804BDBB8; // type:object size:0x8
lbl_804BDBC0 = .sdata:0x804BDBC0; // type:object size:0x8 align:4 data:float
lbl_804BDBC8 = .sdata:0x804BDBC8; // type:object size:0x8
LIGHT_TEXTURE_FILE_NAMES__16RPSysKokeshiIcon = .sdata:0x804BDBC8; // type:object size:0x8
lbl_804BDBD0 = .sdata:0x804BDBD0; // type:object size:0x8
lbl_804BDBD8 = .sdata:0x804BDBD8; // type:object size:0x8
lbl_804BDBE0 = .sdata:0x804BDBE0; // type:object size:0x8
Expand Down
20 changes: 17 additions & 3 deletions include/Pack/RPGraphics/RPGrpModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class RPGrpModel {
RPGrpModel* mpEntryNext; // at 0x14
RPGrpModel* mpGenNext; // at 0x18
IRPGrpModelCallback* mpCallback; // at 0x1C
nw4r::math::VEC3 mScale; // at 0x20
nw4r::math::VEC3 mBaseScale; // at 0x20
RPGrpModelAnm* mpModelAnm; // at 0x2C
RPGrpModelMaterial** mppMaterials; // at 0x30
RPGrpModelBoundingInfo* mpBoundingInfo; // at 0x34
Expand Down Expand Up @@ -214,8 +214,22 @@ class RPGrpModel {
return mpModelEx->getScnRfl();
}

const nw4r::math::VEC3& GetScale() const {
return mScale;
const nw4r::math::VEC3& GetBaseScale() const {
return mBaseScale;
}

void SetBaseScale(const nw4r::math::VEC3& rBaseScale) {
mBaseScale = rBaseScale;
}

void SetBaseScale(f32 x, f32 y, f32 z) {
mBaseScale.x = x;
mBaseScale.y = y;
mBaseScale.z = z;
}

void SetBaseScale(f32 scale) {
mBaseScale.x = mBaseScale.y = mBaseScale.z = scale;
}

RPGrpModelMaterial* GetMaterial(const char* pName) const {
Expand Down
115 changes: 94 additions & 21 deletions include/Pack/RPKernel/RPSysKokeshiGenInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

#include <RVLFaceLib.h>

#include <revolution/GX.h>

//! @addtogroup rp_kernel
//! @{

Expand All @@ -17,7 +19,7 @@ class RPSysKokeshiGenInfo {
RPSysKokeshiManager::GenType mGenType; // at 0x0
//! Player slot ID
u8 mPlayerNo; // at 0x4
//! Mii location (only for GenType_Info)
//! Mii storage location
RPSysKokeshiLocation mLocation; // at 0x8

//! Body model to use
Expand All @@ -27,36 +29,37 @@ class RPSysKokeshiGenInfo {

//! Renderer view ID
u8 mViewNo; // at 0x20

u32 mModelFlags; // at 0x24

//! RP model type option flags
u32 mTypeOption; // at 0x24
//! NW4R model buffer option flags
u32 mBufferOption; // at 0x28

//! Texture width for icons
u16 mTexWidth; // at 0x2C
u16 mIconWidth; // at 0x2C
//! Texture height for icons
u16 mTexHeight; // at 0x2E
u16 mIconHeight; // at 0x2E

//! Resolution of models and textures
RFLResolution mResolution; // at 0x30
//! Facial expressions to support
u32 mExprFlag; // at 0x34

// Use mipmapping to downscale the icon texture
BOOL mMipMap;
//! Whether to use the favorite color as the icon clear color
BOOL mUseFavoriteColor; // at 0x3C
//! Display clear color for icons
GXColor mClearColor; // at 0x40
//! Camera setup for icons
BOOL mIconMipMap; // at 0x38
//! Background type to use for icons
RFLIconBGType mIconBGType; // at 0x3C
//! Background color to use for icons
GXColor mIconBGColor; // at 0x40
//! Camera viewpoint to use for icons
RPSysKokeshiManager::IconView mIconView; // at 0x44
//! Facial expression to use for icons
RFLExpression mIconExpression; // at 0x48
//! Whether to outline icons
BOOL mMakeEdge; // at 0x4C

GXColor unk50;
u16 unk54;
//! Whether to draw an outline around icons
BOOL mIconEdge; // at 0x4C
//! Edge color to use for icons
GXColor mIconEdgeColor; // at 0x50
//! Width of the edge outline for icons
u16 mIconEdgeWidth; // at 0x54

public:
/**
Expand Down Expand Up @@ -104,11 +107,11 @@ class RPSysKokeshiGenInfo {
mViewNo = viewNo;
}

u32 GetModelFlags() const {
return mModelFlags;
u32 GetTypeOption() const {
return mTypeOption;
}
void SetModelFlags(u32 modelFlags) {
modelFlags = modelFlags;
void SetTypeOption(u32 typeOption) {
mTypeOption = typeOption;
}

u32 GetBufferOption() const {
Expand All @@ -118,6 +121,20 @@ class RPSysKokeshiGenInfo {
mBufferOption = bufferOption;
}

u16 GetIconWidth() const {
return mIconWidth;
}
void SetIconWidth(u16 width) {
mIconWidth = width;
}

u16 GetIconHeight() const {
return mIconHeight;
}
void SetIconHeight(u16 height) {
mIconHeight = height;
}

RFLResolution GetResolution() const {
return mResolution;
}
Expand All @@ -132,6 +149,62 @@ class RPSysKokeshiGenInfo {
mExprFlag = exprFlag;
}

bool GetIconMipMap() const {
return mIconMipMap;
}
void SetIconMipMap(bool mipMap) {
mIconMipMap = mipMap;
}

RFLIconBGType GetIconBGType() const {
return mIconBGType;
}
void SetIconBGType(RFLIconBGType bgType) {
mIconBGType = bgType;
}

const GXColor& GetIconBGColor() const {
return mIconBGColor;
}
void SetIconBGColor(const GXColor& rColor) {
mIconBGColor = rColor;
}

RPSysKokeshiManager::IconView GetIconView() const {
return mIconView;
}
void SetIconView(RPSysKokeshiManager::IconView view) {
mIconView = view;
}

RFLExpression GetIconExpression() const {
return mIconExpression;
}
void SetIconExpression(RFLExpression expr) {
mIconExpression = expr;
}

bool GetIconEdge() const {
return mIconEdge;
}
void SetIconEdge(bool edge) {
mIconEdge = edge;
}

const GXColor& GetIconEdgeColor() const {
return mIconEdgeColor;
}
void SetIconEdgeColor(const GXColor& rColor) {
mIconEdgeColor = rColor;
}

u16 GetIconEdgeWidth() const {
return mIconEdgeWidth;
}
void SetIconEdgeWidth(u16 width) {
mIconEdgeWidth = width;
}

const RPSysKokeshiLocation& GetLocation() const {
return mLocation;
}
Expand Down
Loading
Loading