- Fixed: ACS function pointer instructions were not updated when library tag size changed.

- Fixed: undefined sequence compiler warning.
This commit is contained in:
Braden Obrzut 2013-07-22 02:09:46 -04:00
parent a90b49dc72
commit 7723613293
1 changed files with 5 additions and 3 deletions

View File

@ -5556,7 +5556,8 @@ int DLevelScript::RunScript ()
case PCD_PUSHFUNCTION:
{
int funcnum = NEXTBYTE;
PushToStack(funcnum | activeBehavior->GetLibraryID());
// Not technically a string, but since we use the same tagging mechanism
PushToStack(TAGSTR(funcnum));
break;
}
case PCD_CALL:
@ -5572,7 +5573,7 @@ int DLevelScript::RunScript ()
if(pcd == PCD_CALLSTACK)
{
funcnum = STACK(1);
module = FBehavior::StaticGetModule(funcnum>>16);
module = FBehavior::StaticGetModule(funcnum>>LIBRARYID_SHIFT);
--sp;
funcnum &= 0xFFFF; // Clear out tag
@ -8449,7 +8450,8 @@ scriptwait:
case PCD_SAVESTRING:
// Saves the string
{
PushToStack(GlobalACSStrings.AddString(work, Stack, sp));
const int str = GlobalACSStrings.AddString(work, Stack, sp);
PushToStack(str);
STRINGBUILDER_FINISH(work);
}
break;