all repos — hyperkaos @ e4793cd973d31916a365c2d54723bd88771aa3ac

lightweight modular puzzle/adventure game engine in C with SDL 1.2

finished converting all Kaos constructors to form: newKaos(char* args)
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAlyFxV0ACgkQO3+8IhRO
Y5hzEBAAh7g3vUHb061eeHencj91cJ8t01ReYqR9aWPskaWOuZ3Tl9YNLHCsgekO
CxXP8Kf+542+8aAC8b5xJg943Re05vRGOERXN9Cs/8AljpkdDOdpQKjtve33Uj7g
Dmj2KNBXaKsw8anbTPn3SSXXxcRRSwbabnc8GP7j8F35qn1ONpSmLnhTp+rSLl+R
p81buNG/7Y1L/sulXWbmKYpeY1ZEIgCTu92FxdFdGg+o2w1q9SJVTOo32LMcye7V
4QypIrecwrHEmctFAbYdqhqwmr/tzczUeACycX+giM9DpR/HDvh3jkYbo5k2aOuN
k+/VNzGvtMheW1pMDnHKgDDF2CojEfM1N3tBbzVhfdpjEcuHu0TRUrAEmAQpOOwy
iZAV35D1s2WqEQmlbTT+1y9Uq29wj5/FRCV+bqvVd09owaVPABlW3jLO5Jei8N66
j1CsAKJexOyIk4imFFHZ/OjYN3JxT4kEWsot6W646VUOcswbzG2RgdrqunUYtR1j
rfRsVjnGv3YqjpR3KR2szDGziXj/TAXmd/UQ5JPqfTpgX3GEWExl4NUD4xvFIFM0
vruFxN8MMBuet7wZSz6sekep4x7nQNhQVobyuJqiJ9d2VJVWnryziv9iP9QghLAO
CfippgNXBPJP1xGiZMEgkiLswKBG/b53eHIRmH1TvQnkZcu93NE=
=uGgf
-----END PGP SIGNATURE-----
commit

e4793cd973d31916a365c2d54723bd88771aa3ac

parent

f53665d989065b7e6a7314b904050357698fb048

3 files changed, 41 insertions(+), 8 deletions(-)

jump to
M Kaos.cKaos.c

@@ -387,10 +387,20 @@ free(target);

} #ifdef SOUND_ON -Kaos* newPlaySound(int i) +Kaos* newPlaySound(char* args) { Kaos* core = rawKaos(); PlaySound* self = malloc(sizeof(PlaySound)); + int i; + + if (sscanf(args, "slot %d", &i) != 1) + { + free(core); + free(self); + core = NULL; + self = NULL; + return core; + } self->i = i;

@@ -414,10 +424,21 @@ free(target);

} #endif -Kaos* newErase(char t, int i) +Kaos* newErase(char* args) { Kaos* core = rawKaos(); Erase* self = malloc(sizeof(Erase)); + char t; + int i; + + if (sscanf(args, "objType %c, slot %d", &t, &i) != 2) + { + free(core); + free(self); + core = NULL; + self = NULL; + return core; + } self->type = t; self->index = i;

@@ -459,10 +480,22 @@ free(target->kType);

free(target); } -Kaos* newWait(char t, int i) +Kaos* newWait(char* args) { Kaos* core = rawKaos(); Wait* self = malloc(sizeof(Wait)); + + char t; + int i; + + if (sscanf(args, "wType %c, time %d", &t, &i) != 2) + { + free(core); + free(self); + core = NULL; + self = NULL; + return core; + } self->type = t; self->frames = i;
M Kaos.hKaos.h

@@ -120,11 +120,11 @@ void runPlaySound(Kaos* self);

void deletePlaySound(Kaos* target); #endif -Kaos* newErase(char t, int i); +Kaos* newErase(char* args); void runErase(Kaos* self); void deleteErase(Kaos* target); -Kaos* newWait(char t, int i); +Kaos* newWait(char* args); void runWait(Kaos* self); void deleteWait(Kaos* target);
M WorldData.cWorldData.c

@@ -258,7 +258,7 @@ case 'C':

fp = &newConversation; break; case 'W': -// fp = &newWait; + fp = &newWait; break; case 'M': fp = &newManip;

@@ -274,14 +274,14 @@ fp = &newChoice;

break; case 'S': #ifdef SOUND_ON - //fp = &newPlaySound; + fp = &newPlaySound; break; #endif case 'T': fp = &newTeleport; break; case 'E': - //fp = &newErase; + fp = &newErase; break; } if (fp && !(kaosData[slot] = fp(kProps)))