finished converting all Kaos constructors to form: newKaos(char* args)
Derek Stevens 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-----
3 files changed,
41 insertions(+),
8 deletions(-)
M
Kaos.c
→
Kaos.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.h
→
Kaos.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.c
→
WorldData.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)))