aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script_v90he.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index 047f245f2c..9cbc371623 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -2479,23 +2479,30 @@ void ScummEngine_v90he::o90_getActorAnimProgress() {
void ScummEngine_v90he::o90_kernelGetFunctions() {
int args[29];
- int num;
+ int num, tmp;
+ Actor *a;
num = getStackList(args, ARRAYSIZE(args));
switch (args[0]) {
case 1001:
{
- double a = args[1] * PI / 180.;
- push((int)(sin(a) * 100000));
+ double b = args[1] * PI / 180.;
+ push((int)(sin(b) * 100000));
}
break;
case 1002:
{
- double a = args[1] * PI / 180.;
- push((int)(cos(a) * 100000));
+ double b = args[1] * PI / 180.;
+ push((int)(cos(b) * 100000));
}
break;
+ case 1969:
+ a = derefActor(args[1], "o90_kernelGetFunctions: 1969");
+ tmp = a->_heCondMask;
+ tmp &= 0x7FFF0000;
+ push(tmp);
+ break;
case 2001:
// Used in football
debug(0, "o90_kernelGetFunctions: U32 code %d (args %d)", args[1], num - 2);
@@ -2508,7 +2515,7 @@ void ScummEngine_v90he::o90_kernelGetFunctions() {
void ScummEngine_v90he::o90_kernelSetFunctions() {
int args[29];
- int num;
+ int num, tmp;
Actor *a;
num = getStackList(args, ARRAYSIZE(args));
@@ -2555,6 +2562,13 @@ void ScummEngine_v90he::o90_kernelSetFunctions() {
case 1492:
spriteInfoSet_flagDoubleBuffered(args[1], args[2]);
break;
+ case 1969:
+ a = derefActor(args[1], "o90_kernelSetFunctions: 1969");
+ tmp = a->_heCondMask;
+ tmp ^= args[2];
+ tmp &= 0x7FFF0000;
+ a->_heCondMask ^= tmp;
+ break;
case 2001:
// Used in SoccerMLS/Soccer2004
debug(0, "o90_kernelSetFunctions: U32 code %d (args %d)", args[1], num - 2);