Skip to content

Commit 96cac60

Browse files
committed
attempting void pointers
1 parent 58d15ae commit 96cac60

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

src/raylib_game

-4 KB
Binary file not shown.

src/raylib_game.c

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ static void ScoreState(ScoreMenu *menu);
8080
static void PlayState(Camera3D camera, Clock *clock, Snake *snake, Food *food);
8181
// static void IntroState(Camera3D camera, Clock *clock, Snake *snake, Food *food);
8282
// static void OutroState(Camera3D camera, Clock *clock, Snake *snake, Food *food);
83-
static void UpdateDrawFrame(GameData *data);
83+
static void UpdateDrawFrame(void *dataPtr);
8484

8585
//------------------------------------------------------------------------------------
8686
// Program main entry point
@@ -137,7 +137,15 @@ int main(void)
137137
// movement clock
138138
Clock clock = InitClock(clockStartRate);
139139

140-
GameData *gameData = &(GameData){
140+
void *dataPtr;
141+
dataPtr = malloc(sizeof(GameData));
142+
if (dataPtr == NULL)
143+
{
144+
printf("memory allocation of data pointer failed!\n");
145+
return 1;
146+
}
147+
148+
dataPtr = &(GameData){
141149
.camera = camera,
142150
.clock = &clock,
143151
.snake = &snake,
@@ -147,13 +155,23 @@ int main(void)
147155
.score = &scoreMenu,
148156
};
149157

158+
// GameData *gameData = &(GameData){
159+
// .camera = camera,
160+
// .clock = &clock,
161+
// .snake = &snake,
162+
// .food = &food,
163+
// .main = &mainMenu,
164+
// .credits = &creditsMenu,
165+
// .score = &scoreMenu,
166+
// };
167+
150168
// Render texture to draw full screen, enables screen scaling
151169
// NOTE: If screen is scaled, mouse input should be scaled proportionally
152170
target = LoadRenderTexture(screenWidth, screenHeight);
153171
SetTextureFilter(target.texture, TEXTURE_FILTER_BILINEAR);
154172

155173
#if defined(PLATFORM_WEB)
156-
emscripten_set_main_loop_arg(UpdateDrawFrame, gameData, 60, 1);
174+
emscripten_set_main_loop_arg(UpdateDrawFrame, dataPtr, 60, 1);
157175
#else
158176
SetTargetFPS(60); // Set our game frames-per-second
159177
//--------------------------------------------------------------------------------------
@@ -162,7 +180,7 @@ int main(void)
162180
bool exitWindow = false;
163181
while (!exitWindow)
164182
{
165-
UpdateDrawFrame(gameData);
183+
UpdateDrawFrame(dataPtr);
166184

167185
if (activeState == GAME_EXIT || WindowShouldClose())
168186
exitWindow = true;
@@ -191,8 +209,11 @@ int main(void)
191209
// Module functions definition
192210
//--------------------------------------------------------------------------------------------
193211
// Update and draw frame
194-
void UpdateDrawFrame(GameData *data)
212+
void UpdateDrawFrame(void *dataPtr)
195213
{
214+
GameData *data = {0};
215+
data = (GameData *)data;
216+
196217
switch (activeState)
197218
{
198219
case GAME_MENU:

0 commit comments

Comments
 (0)