blob: 4c3078ba9f6d91b9b638ae40cf39a9ab62e4c036 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
//
// Generated by dtk
// Translation Unit: d_bg_s_func.cpp
//
#include "d/d_bg_s_func.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_bg_s_spl_grp_chk.h"
#include "d/d_com_inf_game.h"
#include "d/actor/d_a_sea.h"
#include "JSystem/JUtility/JUTAssert.h"
/* 800A4564-800A4778 .text dBgS_ObjGndChk_Func__FR4cXyz */
f32 dBgS_ObjGndChk_Func(cXyz& r25) {
dBgS_ObjGndChk gndChk;
gndChk.SetPos(&r25);
f32 height = dComIfG_Bgsp()->GroundCross(&gndChk);
return height;
}
/* 800A4778-800A49E0 .text dBgS_ObjGndChk_Wtr_Func__FR4cXyz */
f32 dBgS_ObjGndChk_Wtr_Func(cXyz& r19) {
dBgS_ObjGndChk_Wtr gndChk;
gndChk.SetPos(&r19);
f32 height = dComIfG_Bgsp()->GroundCross(&gndChk);
return height;
}
/* 800A49E0-800A4F68 .text dBgS_SplGrpChk_In_ObjGnd__FR4cXyzP14dBgS_SplGrpChkf */
bool dBgS_SplGrpChk_In_ObjGnd(cXyz& r30, dBgS_SplGrpChk* r31, f32 f31) {
dBgS_ObjGndChk gndChk;
cXyz sp1c = r30;
sp1c.y += f31;
gndChk.SetPos(&sp1c);
f32 height = dComIfG_Bgsp()->GroundCross(&gndChk);
r31->SetHeight(height);
if (height == -G_CM3D_F_INF) {
return FALSE;
}
int room_no = dComIfG_Bgsp()->GetRoomId(gndChk);
JUT_ASSERT(93, 0 <= room_no && room_no < 64);
dBgW* bgw = dComIfGp_roomControl_getBgW(room_no);
if (bgw == NULL) {
return FALSE;
}
f32 max, min;
bgw->GetTopUnder(&max, &min);
cXyz sp10 = r30;
sp10.y = height;
r31->Set(sp10, max);
if (dComIfG_Bgsp()->SplGrpChk(r31)) {
if (r31->GetHeight() > r30.y) {
r31->OnIn();
}
return TRUE;
} else {
return FALSE;
}
}
/* 800A4F68-800A51FC .text dBgS_GetWaterHeight__FR4cXyz */
f32 dBgS_GetWaterHeight(cXyz& r19) {
dBgS_ObjGndChk_Wtr gndChk;
gndChk.SetPos(&r19);
f32 height = dComIfG_Bgsp()->GroundCross(&gndChk);
if (daSea_ChkArea(r19.x, r19.z)) {
f32 f1 = daSea_calcWave(r19.x, r19.z);
if (height < f1) {
height = f1;
}
}
return height;
}
/* 800A51FC-800A54F8 .text dBgS_GetGndMtrlSndId_Func__F4cXyzf */
u32 dBgS_GetGndMtrlSndId_Func(cXyz r21, f32 f1) {
r21.y += f1;
dBgS_ObjGndChk gndChk;
gndChk.SetPos(&r21);
if (dComIfG_Bgsp()->GroundCross(&gndChk) == -G_CM3D_F_INF) {
return 0;
}
return dComIfG_Bgsp()->GetMtrlSndId(gndChk);
}
|