Add a few more actor debugger subcommands, and correct V2 coordinate translation for

o2_(get/set)ActorElevation

svn-id: r8683
This commit is contained in:
James Brown 2003-07-01 04:20:41 +00:00
parent 2c9a784be8
commit 00d5c5af89
3 changed files with 26 additions and 5 deletions

View file

@ -40,7 +40,7 @@ void Scumm_v2::setupOpcodes() {
/* 04 */
OPCODE(o5_isGreaterEqual),
OPCODE(o2_drawObject),
OPCODE(o5_getActorElevation),
OPCODE(o2_getActorElevation),
OPCODE(o2_setState08),
/* 08 */
OPCODE(o5_isNotEqual),
@ -200,7 +200,7 @@ void Scumm_v2::setupOpcodes() {
/* 84 */
OPCODE(o5_isGreaterEqual),
OPCODE(o2_drawObject),
OPCODE(o5_getActorElevation),
OPCODE(o2_getActorElevation),
OPCODE(o2_setState08),
/* 88 */
OPCODE(o5_isNotEqual),
@ -1060,12 +1060,19 @@ void Scumm_v2::o2_putActorAtObject() {
a->putActor(x, y, a->room);
}
void Scumm_v2::o2_getActorElevation() {
getResultPos();
int act = getVarOrDirectByte(0x80);
Actor *a = derefActor(act, "o2_getActorElevation");
setResult(a->elevation / 2);
}
void Scumm_v2::o2_setActorElevation() {
int act = getVarOrDirectByte(0x80);
int elevation = getVarOrDirectByte(0x40);
Actor *a = derefActor(act, "o2_setActorElevation");
a->elevation = elevation;
a->elevation = elevation * 2;
}
void Scumm_v2::o2_animateActor() {