diff options
Diffstat (limited to 'sword2')
-rw-r--r-- | sword2/events.cpp | 70 |
1 files changed, 31 insertions, 39 deletions
diff --git a/sword2/events.cpp b/sword2/events.cpp index 0d04aea44b..2c5495c372 100644 --- a/sword2/events.cpp +++ b/sword2/events.cpp @@ -17,10 +17,7 @@ * $Header$ */ -#include <stdio.h> - #include "stdafx.h" -//#include "src\driver96.h" #include "console.h" #include "debug.h" #include "defs.h" @@ -34,20 +31,16 @@ _event_unit event_list[MAX_events]; void Init_event_system(void) { //Tony4Dec96 - uint32 j; - - for (j = 0; j < MAX_events; j++) { + for (int j = 0; j < MAX_events; j++) { //denotes free slot event_list[j].id = 0; } - } uint32 CountEvents(void) { - uint32 j; uint32 count = 0; - for (j = 0; j < MAX_events; j++) { + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id) count++; } @@ -56,9 +49,11 @@ uint32 CountEvents(void) { } int32 FN_request_speech(int32 *params) { //Tony13Nov96 - //change current script - must be followed by a TERMINATE script + // change current script - must be followed by a TERMINATE script // directive - //param 0 id of target to catch the event and startup speech servicing + + // params: 0 id of target to catch the event and startup speech + // servicing uint32 j = 0; @@ -79,6 +74,7 @@ int32 FN_request_speech(int32 *params) { //Tony13Nov96 //id of person to stop event_list[j].id = params[0]; + //full script id to interact with - megas run their own 7th script event_list[j].interact_id = (params[0] * 65536) + 6; @@ -111,6 +107,7 @@ void Set_player_action_event(uint32 id, uint32 interact_id) { //Tony4Dec96 //id of person to stop event_list[j].id = id; + //full script id of action script number 2 event_list[j].interact_id = (interact_id * 65536) + 2; } @@ -123,8 +120,7 @@ int32 FN_set_player_action_event(int32 *params) { //Tony10Feb97 // note - this routine used CUR_PLAYER_ID as the target - // params - // 0 id to interact with + // params: 0 id to interact with uint32 j = 0; @@ -147,6 +143,7 @@ int32 FN_set_player_action_event(int32 *params) { //Tony10Feb97 // id of person to stop event_list[j].id = CUR_PLAYER_ID; + // full script id of action script number 2 event_list[j].interact_id = (params[0] * 65536) + 2; @@ -157,9 +154,8 @@ int32 FN_send_event(int32 *params) { //Tony28Feb97 // we want to intercept the player character and have him interact // with an object - from script - // params - // 0 id to recieve event - // 1 script to run + // params: 0 id to recieve event + // 1 script to run uint32 j = 0; @@ -184,6 +180,7 @@ int32 FN_send_event(int32 *params) { //Tony28Feb97 // id of person to stop event_list[j].id = params[0]; + //full script id event_list[j].interact_id = params[1]; @@ -195,11 +192,9 @@ int32 FN_check_event_waiting(int32 *params) { //Tony4Dec96 // no params - uint32 j; - RESULT = 0; - for (j = 0; j < MAX_events; j++) { + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == ID) { RESULT = 1; break; @@ -215,9 +210,7 @@ int32 FN_check_event_waiting(int32 *params) { //Tony4Dec96 int32 FN_check_for_event(int32 *params) { // James (04mar97) // no params - uint32 j; - - for (j = 0; j < MAX_events; j++) { + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == ID) { // start the event // run 3rd script of target object on level 1 @@ -242,17 +235,18 @@ int32 FN_pause_for_event(int32 *params) { // James (04mar97) // 1 number of game-cycles to pause Object_logic *ob_logic = (Object_logic *)params[0]; - uint32 j; // first, check for an event - for (j = 0; j < MAX_events; j++) { + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == ID) { // reset the 'looping' flag ob_logic->looping = 0; + // start the event // run 3rd script of target object on level 1 LLogic.Logic_one(event_list[j].interact_id); + // clear the event slot event_list[j].id = 0; return IR_TERMINATE; @@ -272,11 +266,13 @@ int32 FN_pause_for_event(int32 *params) { // James (04mar97) if (ob_logic->pause) { // decrement the pause count ob_logic->pause--; + // drop out of script, but call this again next cycle return IR_REPEAT; } else { // pause count is zerp ob_logic->looping = 0; + // continue script return IR_CONT; } @@ -285,11 +281,10 @@ int32 FN_pause_for_event(int32 *params) { // James (04mar97) uint32 Check_event_waiting(void) { //Tony4Dec96 // returns yes/no - uint32 j; - - for (j = 0; j < MAX_events; j++) + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == ID) return 1; + } return 0; } @@ -298,14 +293,13 @@ int32 FN_clear_event(int32 *params) { //Tony11Mar97 // no params // no return vaule - uint32 j; - - for (j = 0; j < MAX_events; j++) + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == ID) { //clear the slot event_list[j].id = 0; return IR_CONT; } + } return IR_CONT; } @@ -314,28 +308,27 @@ void Start_event(void) { //Tony4Dec96 // call this from stuff like fn_walk // you must follow with a return IR_TERMINATE - uint32 j; - - for (j = 0; j < MAX_events; j++) + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == ID) { // run 3rd script of target object on level 1 LLogic.Logic_one( event_list[j].interact_id); + //clear the slot event_list[j].id = 0; return; } + } // oh dear - stop the system Con_fatal_error("Start_event can't find event for id %d", ID); } int32 FN_start_event(int32 *params) { //Tony4Dec96 - uint32 j; - - for (j = 0; j < MAX_events; j++) + for (int j = 0; j < MAX_events; j++) if (event_list[j].id == ID) { // run 3rd script of target object on level 1 LLogic.Logic_one(event_list[j].interact_id); + // clear the slot event_list[j].id = 0; return IR_TERMINATE; @@ -347,11 +340,10 @@ int32 FN_start_event(int32 *params) { //Tony4Dec96 } void Kill_all_ids_events(uint32 id) { //Tony18Dec96 - uint32 j; - - for (j = 0; j < MAX_events; j++) + for (int j = 0; j < MAX_events; j++) { if (event_list[j].id == id) { // clear the slot event_list[j].id = 0; } + } } |