summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/d/d_cam_param.h14
-rw-r--r--src/d/d_cam_param.cpp22
-rw-r--r--src/d/d_meter.cpp2
3 files changed, 29 insertions, 9 deletions
diff --git a/include/d/d_cam_param.h b/include/d/d_cam_param.h
index fca72383..ed04d169 100644
--- a/include/d/d_cam_param.h
+++ b/include/d/d_cam_param.h
@@ -4,7 +4,10 @@
#include "dolphin/types.h"
#include "SSystem/SComponent/c_angle.h"
-struct dCamera__Style;
+struct dCamera__Style {
+ /* 0x00 */ u32 m00;
+ /* 0x04 */ u8 m04[0x84 - 0x04];
+}; // Size: 0x84
class dCstick_c {
public:
@@ -119,7 +122,10 @@ public:
class dCamParam_c {
public:
/* 0x0 */ dCamera__Style* mpStyle;
- /* 0x4 */ int mStyleIdx;
+ /* 0x4 */ s32 mStyleIdx;
+
+ static dCamera__Style styles[];
+ static s32 style_num;
public:
dCamParam_c(s32);
@@ -127,8 +133,8 @@ public:
void Flag(s32, u16) {}
void Val(s32, int) {}
- void Change(s32);
- void SearchStyle(u32);
+ BOOL Change(s32);
+ s32 SearchStyle(u32);
void ratiof(f32, f32, f32, f32);
void DefaultRadius(f32*);
void RadiusRatio(f32);
diff --git a/src/d/d_cam_param.cpp b/src/d/d_cam_param.cpp
index ce74b5a6..50ba53ad 100644
--- a/src/d/d_cam_param.cpp
+++ b/src/d/d_cam_param.cpp
@@ -66,13 +66,27 @@ dCamParam_c::~dCamParam_c() {
}
/* 800AF978-800AF9BC .text Change__11dCamParam_cFl */
-void dCamParam_c::Change(s32) {
- /* Nonmatching */
+BOOL dCamParam_c::Change(s32 i_styleIdx) {
+ mStyleIdx = i_styleIdx;
+ if (i_styleIdx < style_num) {
+ mpStyle = &styles[mStyleIdx];
+ return TRUE;
+ } else {
+ mpStyle = &styles[0];
+ return FALSE;
+ }
}
/* 800AF9BC-800AFA04 .text SearchStyle__11dCamParam_cFUl */
-void dCamParam_c::SearchStyle(u32) {
- /* Nonmatching */
+s32 dCamParam_c::SearchStyle(u32 r4) {
+ s32 styleIndex = -1;
+ for (s32 i = 0; i < style_num; i++) {
+ if (styles[i].m00 == r4) {
+ styleIndex = i;
+ break;
+ }
+ }
+ return styleIndex;
}
/* 800AFA04-800AFAA4 .text ratiof__11dCamParam_cFffff */
diff --git a/src/d/d_meter.cpp b/src/d/d_meter.cpp
index 75c5abb2..24d883de 100644
--- a/src/d/d_meter.cpp
+++ b/src/d/d_meter.cpp
@@ -1774,7 +1774,7 @@ static BOOL dMeter_Execute(sub_meter_class* i_this) {
dMeter_childPaneTrans(i_this->field_0x2438 + 0x09 + i, i_this->field_0x2438 + 0x16, f31);
}
- dMeter_childPaneTransOnly(i_this->field_0x1638 + 0x1E, i_this->field_0x2438 + 0x16, f31, f29);
+ dMeter_childPaneTransOnly(i_this->field_0x1638 + 0x1E, i_this->field_0x2438 + 0x16, f31, f30);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x0C, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x0B, i_this->field_0x2438 + 0x16, f31);