MCPcopy Create free account
hub / github.com/devkitPro/3ds-hbmenu / waveUpdate

Function waveUpdate

source/ui/background.c:113–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

111}
112
113void waveUpdate(void)
114{
115 waveDisturbance[waveDisturbancePos] = waveDisturbanceCur;
116
117 for (u32 i = 0; i < WAVE_NUMPOINTS; i ++)
118 {
119 float x = (float)i / (WAVE_NUMPOINTS-1);
120 float y = 120.0f;
121 float dist = waveDisturbance[(waveDisturbancePos + i + 1) % WAVE_NUMPOINTS];
122 for (u32 j = 0; j < WAVE_NUMCURVES; j ++)
123 {
124 float ampl = waveCurves[j].amplitude;
125 if (j == (WAVE_NUMCURVES-1))
126 ampl = dist;
127 y += 0.5f*ampl * sinf(M_TAU*(waveCurves[j].velocity*x + waveCurves[j].phase));
128 }
129 wavePoints[i] = y;
130 }
131
132 for (u32 j = 0; j < WAVE_NUMCURVES; j ++)
133 {
134 float variance = randomFloatInterval(0.95f, 1.05f);
135 if (j == (WAVE_NUMCURVES-1))
136 variance *= waveCurves[j].velocity;
137 waveCurves[j].phase += variance/60.0f;
138 }
139
140 waveDisturbancePos = (waveDisturbancePos + 1) % WAVE_NUMPOINTS;
141 waveDisturbanceCur -= randomFloatInterval(0.95f, 1.05f);
142 if (waveDisturbanceCur < 0.0f)
143 waveDisturbanceCur = 0.0f;
144}
145
146static void bubbleUpdate(bubble_t* bubble)
147{

Callers 1

backgroundUpdateFunction · 0.85

Calls 2

sinfFunction · 0.85
randomFloatIntervalFunction · 0.85

Tested by

no test coverage detected