diff options
Diffstat (limited to 'sword2/sync.cpp')
-rw-r--r-- | sword2/sync.cpp | 198 |
1 files changed, 72 insertions, 126 deletions
diff --git a/sword2/sync.cpp b/sword2/sync.cpp index 6611a80c3a..7d3c6adfd9 100644 --- a/sword2/sync.cpp +++ b/sword2/sync.cpp @@ -17,165 +17,111 @@ * $Header$ */ -//------------------------------------------------------------------------------------ -#include <stdio.h> - #include "stdafx.h" -//#include "src\driver96.h" -#include "console.h" #include "debug.h" #include "defs.h" #include "interpreter.h" -#include "memory.h" -#include "object.h" #include "sync.h" -//------------------------------------------------------------------------------------ -typedef struct -{ - uint32 id; - uint32 sync; -} _sync_unit; //haaaaaaaa - -#define MAX_syncs 10 //there wont be many will there. probably 2 at most i reckon - - -_sync_unit sync_list[MAX_syncs]; - -//------------------------------------------------------------------------------------ -void Init_sync_system(void) //Tony27Nov96 -{ -//set list to 0's - - uint32 j; +typedef struct { + uint32 id; + uint32 sync; +} _sync_unit; // haaaaaaaa +// there wont be many will there. probably 2 at most i reckon +#define MAX_syncs 10 - for (j=0;j<MAX_syncs;j++) - sync_list[j].id=0; - +_sync_unit sync_list[MAX_syncs]; +void Init_sync_system(void) { // Tony27Nov96 + // set list to 0's + for (int j = 0; j < MAX_syncs; j++) + sync_list[j].id = 0; } -//------------------------------------------------------------------------------------ -int32 FN_send_sync(int32 *params) //Tony27Nov96 -{ -//param 0 sync's recipient -//param 1 sync value - - - uint32 current_sync=0; +int32 FN_send_sync(int32 *params) { // Tony27Nov96 + //param 0 sync's recipient + //param 1 sync value - if (sync_list[current_sync].id) - { - do - current_sync++; - while(sync_list[current_sync].id); //zip along until we find a free slot - + for (int i = 0; i < MAX_syncs; i++) { + if (sync_list[i].id == 0) { + // Zdebug(" %d sending sync %d to %d", ID, params[1], params[0]); + sync_list[i].id = params[0]; + sync_list[i].sync = params[1]; + return IR_CONT; + } } -// Zdebug(" %d sending sync %d to %d", ID, params[1], params[0]); - + // The original code didn't even check for this condition, so maybe + // it should be a fatal error? - sync_list[current_sync].id=params[0]; - sync_list[current_sync].sync=params[1]; - - - - return(IR_CONT); + warning("No free sync slot"); + return IR_CONT; } -//------------------------------------------------------------------------------------ -void Clear_syncs(uint32 id) //Tony27Nov96 -{ -//clear any syncs registered for this id -//call this just after the id has been processed - uint32 j; +void Clear_syncs(uint32 id) { // Tony27Nov96 + // clear any syncs registered for this id + // call this just after the id has been processed + // there could in theory be more than one sync waiting for us so + // clear the lot - -//there could in theory be more than one sync waiting for us so clear the lot - - for (j=0;j<MAX_syncs;j++) - if (sync_list[j].id==id) - { //Zdebug("removing sync %d for %d", j, id); - sync_list[j].id=0; + for (int i = 0; i < MAX_syncs; i++) { + if (sync_list[i].id == id) { + // Zdebug("removing sync %d for %d", i, id); + sync_list[i].id = 0; } - - + } } -//------------------------------------------------------------------------------------ -uint32 Get_sync(void) //Tony27Nov96 -{ - // check for a sync waiting for this character - // - called from system code eg. from inside FN_anim(), to see if animation to be quit - - uint32 j; - - - for (j=0;j<MAX_syncs;j++) - if (sync_list[j].id == ID) - return(1); //means sync found Tony12July97 - -// return(sync_list[j].sync); //return sync value waiting - +uint32 Get_sync(void) { // Tony27Nov96 + // check for a sync waiting for this character + // - called from system code eg. from inside FN_anim(), to see if + // animation to be quit - return(0); //no sync found + for (int i = 0; i < MAX_syncs; i++) { + if (sync_list[i].id == ID) { + // means sync found Tony12July97 + return 1; + } + } + // no sync found + return 0; } -//------------------------------------------------------------------------------------ -int32 FN_get_sync(int32 *params) //Tony27Nov96 -{ -// check for a sync waiting for this character -// - called from script -//params none - - - uint32 j; - - - for (j=0;j<MAX_syncs;j++) - if (sync_list[j].id == ID) { - RESULT=sync_list[j].sync; - return(IR_CONT); //return sync value waiting +int32 FN_get_sync(int32 *params) { // Tony27Nov96 + // check for a sync waiting for this character + // - called from script + // params none + + for (int i = 0; i < MAX_syncs; i++) { + if (sync_list[i].id == ID) { + // return sync value waiting + RESULT = sync_list[i].sync; + return IR_CONT; } + } - RESULT=0; - - // if (params); what is the point of this... khalek - - return(IR_CONT); //no sync found - + // no sync found + RESULT = 0; + return IR_CONT; } -//------------------------------------------------------------------------------------ -int32 FN_wait_sync(int32 *params) //Tony27Nov96 -{ -//keep calling until a sync recieved - -//params none - - uint32 j; +int32 FN_wait_sync(int32 *params) { // Tony27Nov96 + // keep calling until a sync recieved + // params none - j=ID; + // Zdebug("%d waits", ID); - -// Zdebug("%d waits", ID); - - - for (j=0;j<MAX_syncs;j++) { - if (sync_list[j].id == ID) { - RESULT=sync_list[j].sync; + for (int i = 0; i < MAX_syncs; i++) { + if (sync_list[i].id == ID) { + // return sync value waiting //Zdebug(" go"); - return(IR_CONT); //return sync value waiting + RESULT = sync_list[i].sync; + return IR_CONT; } } - // if (params); // what is the point of this... - khalek - - return(IR_REPEAT); //back again next cycle - + // back again next cycle + return IR_REPEAT; } -//------------------------------------------------------------------------------------ -//------------------------------------------------------------------------------------ - |