summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2020-12-31 16:28:28 +0000
committerJuan J. Martinez <jjm@usebox.net>2020-12-31 16:28:28 +0000
commitb1161791479625b484c0f76934664d9050360ce1 (patch)
tree93b8f6d2fc9b4e49af35748d498c8b9c6ecef8b0
parente0e9142dbf47115201f9d6579108ce40c255efb0 (diff)
downloadubox-msx-lib-b1161791479625b484c0f76934664d9050360ce1.tar.gz
ubox-msx-lib-b1161791479625b484c0f76934664d9050360ce1.zip
Fix: prevent crash with MAX_ENTITIES are used
The look would crash if all the entities are used, so we count how many entities we process in the loop.
-rw-r--r--game/src/game.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/game/src/game.c b/game/src/game.c
index bc52b2a..6a85ad2 100644
--- a/game/src/game.c
+++ b/game/src/game.c
@@ -370,6 +370,8 @@ void update_player()
void run_game()
{
+ uint8_t i;
+
// init some variables; look at game.h for description
lives = MAX_LIVES;
invuln = 0;
@@ -421,7 +423,7 @@ void run_game()
// - self is a pointer to THIS entity
// - because we don't create/destroy entities dynamically
// when we found one that is unused we are done
- for (self = entities; self->type; self++)
+ for (i = 0, self = entities; i < MAX_ENTITIES && self->type; i++, self++)
self->update();
// ensure we wait to our desired update rate