Skip to content

Commit 73bf9a0

Browse files
committed
zLightning: 90% match on zLightningInit
1 parent 83e05cb commit 73bf9a0

File tree

2 files changed

+126
-31
lines changed

2 files changed

+126
-31
lines changed

src/SB/Game/zLightning.cpp

Lines changed: 126 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#include "zLightning.h"
2-
#include "zGlobals.h"
32

43
#include "xDebug.h"
4+
#include "zGlobals.h"
5+
#include "xstransvc.h"
56

67
#include <types.h>
78
#include <rwcore.h>
@@ -24,7 +25,7 @@ static tweak_callback sLightningChangeCB;
2425
static xVec3 sPoint[5];
2526
static F32 sSize[5];
2627

27-
char* lightning_type_names[4] = { "Line", "Rotating", "Zeus", "Func" };
28+
const char* lightning_type_names[4] = { "Line", "Rotating", "Zeus", "Func" };
2829
static zParEmitter* sSparkEmitter;
2930
static RwRaster* sLightningRaster;
3031
static F32 sLFuncJerkTime;
@@ -42,9 +43,7 @@ static F32 sLFuncSpanPerLength = 1.5f;
4243
static F32 sLFuncSlopeRange = 2.0f;
4344
static F32 sLFuncUVSpeed = 1.0f;
4445

45-
void xDebugAddTweak(const char*, F32*, F32, F32, const tweak_callback*, void*, U32)
46-
{
47-
}
46+
static void lightningTweakStart(const tweak_info& t);
4847

4948
void lightningTweakChangeType(const tweak_info& t)
5049
{
@@ -71,6 +70,128 @@ void lightningTweakChangeType(const tweak_info& t)
7170
}
7271
}
7372

73+
void zLightningInit()
74+
{
75+
for (S32 i = 0; i < NUM_LIGHTNING; i++)
76+
{
77+
sLightning[i] = NULL;
78+
}
79+
80+
zSceneFindObject(xStrHash("PAREMIT_EG_SPARK"));
81+
RwTexture* tex = (RwTexture*)xSTFindAsset(xStrHash("LIGHTNING"), NULL);
82+
if (tex != NULL)
83+
{
84+
sLightningRaster = tex->raster;
85+
}
86+
87+
for (S32 i = 0; i < 9; i++)
88+
{
89+
sLFuncX[i].next = &sLFuncX[i + 1];
90+
sLFuncY[i].next = &sLFuncY[i + 2];
91+
sLFuncZ[i].next = &sLFuncZ[i + 3];
92+
}
93+
94+
sLFuncX[9].next = NULL;
95+
sLFuncY[9].next = NULL;
96+
sLFuncZ[9].next = NULL;
97+
98+
for (S32 i = 0; i < 10; i++) {
99+
xVec3Init(&sLFuncVal[i], 2.0f * (xurand() - 0.5f), 2.0f * (xurand() - 0.5f), 2.0f * (xurand() - 0.5f));
100+
xVec3Init(&sLFuncSlope[i][0], 2.0f * (2.0f * (xurand() - 0.5f)), 2.0f * (2.0f * (xurand() - 0.5f)), 2.0f * (2.0f * (xurand() - 0.5f)));
101+
xVec3Init(&sLFuncSlope[i][1], 2.0f * (2.0f * (xurand() - 0.5f)), 2.0f * (2.0f * (xurand() - 0.5f)), 2.0f * (2.0f * (xurand() - 0.5f)));
102+
103+
sLFuncEnd[i] = 0.25f * (xurand() - 0.5f) + (i + 1);
104+
}
105+
106+
sLFuncEnd[9] = 10.0f;
107+
108+
for (S32 i = 0; i < 10; i++)
109+
{
110+
S32 j;
111+
F32 prevEnd;
112+
if (i == 0)
113+
{
114+
prevEnd = 0.0f;
115+
j = 9;
116+
}
117+
else
118+
{
119+
j = i - 1;
120+
prevEnd = sLFuncEnd[j];
121+
}
122+
123+
xFuncPiece_EndPoints(&sLFuncX[i], prevEnd, sLFuncEnd[i], sLFuncVal[i].x, sLFuncVal[j].x);
124+
xFuncPiece_EndPoints(&sLFuncY[i], prevEnd, sLFuncEnd[i], sLFuncVal[i].y, sLFuncVal[j].y);
125+
xFuncPiece_EndPoints(&sLFuncZ[i], prevEnd, sLFuncEnd[i], sLFuncVal[i].z, sLFuncVal[j].z);
126+
}
127+
128+
sLFuncJerkTime = 0.0f;
129+
130+
gLightningTweakAddInfo.type = 0x3;
131+
gLightningTweakAddInfo.flags = 0x1428;
132+
gLightningTweakAddInfo.time = 5.0f;
133+
xVec3Init(&sTweakStart, -5.0f, 6.0f, 0.0f);
134+
xVec3Init(&sTweakEnd, -5.0f, 2.0f, 0.0f);
135+
gLightningTweakAddInfo.color.r = 0xC8;
136+
gLightningTweakAddInfo.color.g = 0xC8;
137+
gLightningTweakAddInfo.color.b = 0xC8;
138+
gLightningTweakAddInfo.color.a = 0xC8;
139+
gLightningTweakAddInfo.arc_height = 0.5f;
140+
gLightningTweakAddInfo.rot_radius = 0.15f;
141+
gLightningTweakAddInfo.thickness = 0.25f;
142+
gLightningTweakAddInfo.rand_radius = 8.0f;
143+
gLightningTweakAddInfo.move_degrees = -2500.0f;
144+
gLightningTweakAddInfo.setup_degrees = 66.0f;
145+
gLightningTweakAddInfo.total_points = 16;
146+
gLightningTweakAddInfo.zeus_normal_offset = 0.75f;
147+
gLightningTweakAddInfo.zeus_back_offset = 0.2f;
148+
gLightningTweakAddInfo.zeus_side_offset = 0.0f;
149+
150+
sLightningStartCB.on_change = &lightningTweakStart;
151+
sLightningChangeCB.on_change = &lightningTweakChangeType;
152+
153+
xDebugAddTweak("Lightning|\01\01Go", "Start Lightning", &sLightningStartCB, NULL, 0x2);
154+
xDebugAddTweak("Lightning|\01Globals|\01\01JerkFrequency", &sLFuncJerkFreq, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
155+
xDebugAddTweak("Lightning|\01Globals|\01\01ShiftSpeed", &sLFuncShift, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
156+
xDebugAddTweak("Lightning|\01Globals|\01\02MinPStep", &sLFuncMinPStep, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
157+
xDebugAddTweak("Lightning|\01Globals|\01\03MaxPStep", &sLFuncMaxPStep, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
158+
xDebugAddTweak("Lightning|\01Globals|\01\03MinScale", &sLFuncMinScale, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
159+
xDebugAddTweak("Lightning|\01Globals|\02\01MaxScale", &sLFuncMaxScale, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
160+
xDebugAddTweak("Lightning|\01Globals|\02\01ScalePerLength", &sLFuncScalePerLength, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
161+
xDebugAddTweak("Lightning|\01Globals|\02\02MinSpan", &sLFuncMinSpan, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
162+
xDebugAddTweak("Lightning|\01Globals|\02\02SpanPerLength", &sLFuncSpanPerLength, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
163+
xDebugAddTweak("Lightning|\01Globals|\02\03SlopeRange", &sLFuncSlopeRange, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
164+
xDebugAddTweak("Lightning|\01Globals|\02\03UVSpeed", &sLFuncUVSpeed, -1000000000.0f, 1000000000.0f, NULL, NULL, 0x2);
165+
xDebugAddTweak("Lightning|\01Time", &gLightningTweakAddInfo.time, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
166+
xDebugAddTweak("Lightning|\01Total Points", &gLightningTweakAddInfo.total_points, 2, 16, NULL, NULL, 0x2);
167+
168+
xDebugAddSelectTweak("Lightning|\01Type", &gLightningTweakAddInfo.type, lightning_type_names, NULL, 4, &sLightningChangeCB, NULL, 0x2);
169+
170+
tweak_info info;
171+
lightningTweakChangeType((const tweak_info&)info);
172+
173+
xDebugAddFlagTweak("Lightning|\02Flag|Rot Scalar", &gLightningTweakAddInfo.flags, 0x8, NULL, NULL, 0x2);
174+
xDebugAddFlagTweak("Lightning|\02Flag|No Fade Out", &gLightningTweakAddInfo.flags, 0x1000, NULL, NULL, 0x2);
175+
xDebugAddFlagTweak("Lightning|\02Flag|Arc", &gLightningTweakAddInfo.flags, 0x20, NULL, NULL, 0x2);
176+
xDebugAddFlagTweak("Lightning|\02Flag|Vertical Orientation", &gLightningTweakAddInfo.flags, 0x200, NULL, NULL, 0x2);
177+
xDebugAddFlagTweak("Lightning|\02Flag|Taper Thickness At End", &gLightningTweakAddInfo.flags, 0x400, NULL, NULL, 0x2);
178+
xDebugAddFlagTweak("Lightning|\02Flag|Taper Thickness At Start", &gLightningTweakAddInfo.flags, 0x800, NULL, NULL, 0x2);
179+
xDebugAddTweak("Lightning|\02Start|x", &sTweakStart.x, -50.0f, 50.0f, NULL, NULL, 0x2);
180+
xDebugAddTweak("Lightning|\02Start|y", &sTweakStart.y, -50.0f, 50.0f, NULL, NULL, 0x2);
181+
xDebugAddTweak("Lightning|\02Start|z", &sTweakStart.z, -50.0f, 50.0f, NULL, NULL, 0x2);
182+
xDebugAddTweak("Lightning|\03End|x", &sTweakEnd.x, -50.0f, 50.0f, NULL, NULL, 0x2);
183+
xDebugAddTweak("Lightning|\03End|y", &sTweakEnd.y, -50.0f, 50.0f, NULL, NULL, 0x2);
184+
xDebugAddTweak("Lightning|\03End|z", &sTweakEnd.z, -50.0f, 50.0f, NULL, NULL, 0x2);
185+
xDebugAddTweak("Lightning|\04Color|\01R", &gLightningTweakAddInfo.color.r, 0x0, 0xFF, NULL, NULL, 0x2);
186+
xDebugAddTweak("Lightning|\04Color|\02G", &gLightningTweakAddInfo.color.g, 0x0, 0xFF, NULL, NULL, 0x2);
187+
xDebugAddTweak("Lightning|\04Color|\03B", &gLightningTweakAddInfo.color.b, 0x0, 0xFF, NULL, NULL, 0x2);
188+
xDebugAddTweak("Lightning|\04Color|\04A", &gLightningTweakAddInfo.color.a, 0x0, 0xFF, NULL, NULL, 0x2);
189+
xDebugAddTweak("Lightning|Lengths|Rot Radius", &gLightningTweakAddInfo.rot_radius, -1000000000.0f, 1000000000.0f, NULL, NULL, 0x2);
190+
xDebugAddTweak("Lightning|Lengths|Arc Height", &gLightningTweakAddInfo.arc_height, -1000000000.0f, 1000000000.0f, NULL, NULL, 0x2);
191+
xDebugAddTweak("Lightning|Lengths|Thickness", &gLightningTweakAddInfo.thickness, 0.0f, 100.0f, NULL, NULL, 0x2);
192+
xDebugAddTweak("Lightning|Randomness|Rand Radius", &gLightningTweakAddInfo.rand_radius, 0.0f, 1000000000.0f, NULL, NULL, 0x2);
193+
}
194+
74195
static void lightningTweakStart(const tweak_info& t)
75196
{
76197
xVec3 s, e;
@@ -196,20 +317,3 @@ static zLightning* FindFreeLightning()
196317

197318
return 0;
198319
}
199-
200-
void xDebugAddTweak(const char*, S16*, S16, S16, const tweak_callback*, void*, U32)
201-
{
202-
}
203-
204-
void xDebugAddTweak(const char*, U8*, U8, U8, const tweak_callback*, void*, U32)
205-
{
206-
}
207-
208-
void xDebugAddFlagTweak(const char*, U32*, U32, const tweak_callback*, void*, U32)
209-
{
210-
}
211-
212-
void xDebugAddSelectTweak(const char*, U32*, const char**, const U32*, U32, const tweak_callback*,
213-
void*, U32)
214-
{
215-
}

src/SB/Game/zLightning.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,6 @@ void zLightningKill(zLightning* l);
102102
void RenderLightning(zLightning* l);
103103
void zLightningRender();
104104
void zLightningModifyEndpoints(zLightning* l, xVec3* start, xVec3* end);
105-
void xDebugAddTweak(char* name, U8* property, U8 param_3, U8 param_4, tweak_callback* callback,
106-
void* param_6, U32 param_7);
107-
void xDebugAddFlagTweak(char* name, U32* property, U32 param_3, tweak_callback* callback,
108-
void* param_5, U32 param_6);
109-
void xDebugAddSelectTweak(char* name, U32* param_2, char** param_3, U32* param_4, U32 param_5,
110-
tweak_callback* callback, void* param_7, U32 param_8);
111-
void xDebugAddTweak(char* name, S16* property, S16 param_3, S16 param_4, tweak_callback* callback,
112-
void* param_6, U32 param_7);
113-
114105
void zLightningInit();
115106
void zLightningUpdate(F32 seconds);
116107
void zLightningRender();

0 commit comments

Comments
 (0)