aboutsummaryrefslogtreecommitdiff
path: root/sword2
diff options
context:
space:
mode:
Diffstat (limited to 'sword2')
-rw-r--r--sword2/events.cpp70
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;
}
+ }
}