aboutsummaryrefslogtreecommitdiff
path: root/sword2/sync.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2003-11-08 15:47:51 +0000
committerTorbjörn Andersson2003-11-08 15:47:51 +0000
commit688c80b0620ae5765355a4048864bb3de84ebf74 (patch)
tree497d8efc73b08f5a4d58c45c52b7a6bafa1975ff /sword2/sync.cpp
parentb04ddef7506bfa08527da9e79040c583fb765b2e (diff)
downloadscummvm-rg350-688c80b0620ae5765355a4048864bb3de84ebf74.tar.gz
scummvm-rg350-688c80b0620ae5765355a4048864bb3de84ebf74.tar.bz2
scummvm-rg350-688c80b0620ae5765355a4048864bb3de84ebf74.zip
Moved more stuff into classes, changed some static allocation to dynamic,
and removed some of the references to global variables. At this point I believe everything in the main game engine has been moved into classes - not necessarily the correct ones, but still... However, there is some stuff in the driver directory that need to be taken care of as well. svn-id: r11207
Diffstat (limited to 'sword2/sync.cpp')
-rw-r--r--sword2/sync.cpp40
1 files changed, 12 insertions, 28 deletions
diff --git a/sword2/sync.cpp b/sword2/sync.cpp
index 659cf4a6ff..3e24fcc741 100644
--- a/sword2/sync.cpp
+++ b/sword2/sync.cpp
@@ -27,31 +27,15 @@
namespace Sword2 {
-typedef struct {
- uint32 id;
- uint32 sync;
-} _sync_unit;
-
-// there wont be many will there. probably 2 at most i reckon
-#define MAX_syncs 10
-
-static _sync_unit sync_list[MAX_syncs];
-
-void Init_sync_system(void) {
- // set list to 0's
- for (int j = 0; j < MAX_syncs; j++)
- sync_list[j].id = 0;
-}
-
int32 Logic::fnSendSync(int32 *params) {
// params: 0 sync's recipient
// 1 sync value
for (int i = 0; i < MAX_syncs; i++) {
- if (sync_list[i].id == 0) {
+ if (_syncList[i].id == 0) {
debug(5, " %d sending sync %d to %d", ID, params[1], params[0]);
- sync_list[i].id = params[0];
- sync_list[i].sync = params[1];
+ _syncList[i].id = params[0];
+ _syncList[i].sync = params[1];
return IR_CONT;
}
}
@@ -63,27 +47,27 @@ int32 Logic::fnSendSync(int32 *params) {
return IR_CONT;
}
-void Clear_syncs(uint32 id) {
+void Logic::clearSyncs(uint32 id) {
// 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
for (int i = 0; i < MAX_syncs; i++) {
- if (sync_list[i].id == id) {
+ if (_syncList[i].id == id) {
debug(5, "removing sync %d for %d", i, id);
- sync_list[i].id = 0;
+ _syncList[i].id = 0;
}
}
}
-bool Get_sync(void) {
+bool Logic::getSync(void) {
// check for a sync waiting for this character
// - called from system code eg. from inside fnAnim(), to see if
// animation to be quit
for (int i = 0; i < MAX_syncs; i++) {
- if (sync_list[i].id == ID) {
+ if (_syncList[i].id == ID) {
// means sync found
return true;
}
@@ -100,9 +84,9 @@ int32 Logic::fnGetSync(int32 *params) {
// params: none
for (int i = 0; i < MAX_syncs; i++) {
- if (sync_list[i].id == ID) {
+ if (_syncList[i].id == ID) {
// return sync value waiting
- RESULT = sync_list[i].sync;
+ RESULT = _syncList[i].sync;
return IR_CONT;
}
}
@@ -120,10 +104,10 @@ int32 Logic::fnWaitSync(int32 *params) {
debug(5, "fnWaitSync: %d waits", ID);
for (int i = 0; i < MAX_syncs; i++) {
- if (sync_list[i].id == ID) {
+ if (_syncList[i].id == ID) {
// return sync value waiting
debug(5, "fnWaitSync: go");
- RESULT = sync_list[i].sync;
+ RESULT = _syncList[i].sync;
return IR_CONT;
}
}