From 65e2494265f1252bcd1fa4a7f80402ab6bf8ae7b Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sat, 3 Sep 2011 11:02:03 +0200 Subject: DREAMWEB: 'turnpathon' et 'turnpathoff' ported to C++ --- engines/dreamweb/pathfind.cpp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'engines/dreamweb/pathfind.cpp') diff --git a/engines/dreamweb/pathfind.cpp b/engines/dreamweb/pathfind.cpp index 2579105c6f..4b1d590bec 100644 --- a/engines/dreamweb/pathfind.cpp +++ b/engines/dreamweb/pathfind.cpp @@ -27,22 +27,28 @@ namespace DreamGen { -void DreamGenContext::turnpathonCPP(uint8 param) { - al = param; - push(es); - push(bx); - turnpathon(); - bx = pop(); - es = pop(); +void DreamGenContext::turnpathon() { + turnpathon(al); } -void DreamGenContext::turnpathoffCPP(uint8 param) { - al = param; - push(es); - push(bx); - turnpathoff(); - bx = pop(); - es = pop(); +void DreamGenContext::turnpathon(uint8 param) { + findormake(param, 0xff, data.byte(kRoomnum) + 100); + uint8 *roomsPaths = getroomspathsCPP(); + if (param == 0xff) + return; + roomsPaths[8 * param + 6] = 0xff; +} + +void DreamGenContext::turnpathoff() { + turnpathoff(al); +} + +void DreamGenContext::turnpathoff(uint8 param) { + findormake(param, 0x00, data.byte(kRoomnum) + 100); + uint8 *roomsPaths = getroomspathsCPP(); + if (param == 0xff) + return; + roomsPaths[8 * param + 6] = 0x00; } void DreamGenContext::getroomspaths() { -- cgit v1.2.3