diff options
author | Bertrand Augereau | 2011-08-24 15:50:33 +0200 |
---|---|---|
committer | Bertrand Augereau | 2011-08-24 16:35:31 +0200 |
commit | 63b4ded1a07019ee0330e2244693bd083f13da08 (patch) | |
tree | a497c9b6311da1a4988a577b3438679509bf1ea1 | |
parent | ee87420b64c7268ce0a18acdcbcbd1afabc2f381 (diff) | |
download | scummvm-rg350-63b4ded1a07019ee0330e2244693bd083f13da08.tar.gz scummvm-rg350-63b4ded1a07019ee0330e2244693bd083f13da08.tar.bz2 scummvm-rg350-63b4ded1a07019ee0330e2244693bd083f13da08.zip |
DREAMWEB: Static dispatching in checkcoords
-rw-r--r-- | engines/dreamweb/stubs.cpp | 140 |
1 files changed, 138 insertions, 2 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 5cbce89594..ac693dcf90 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1319,8 +1319,144 @@ void DreamGenContext::checkcoords(const RectWithCallback *rectWithCallbacks) { const RectWithCallback *rectWithCallback = rectWithCallbacks; while (rectWithCallback->xMin() != 0xffff) { if (rectWithCallback->contains(data.word(kMousex), data.word(kMousey))) { - // TODO : Explicit dispatching - __dispatch_call(rectWithCallback->callback()); + uint16 callback = rectWithCallback->callback(); + + // common + if(callback == addr_blank) + blank(); + else if(callback == addr_getbackfromob) + getbackfromob(); + else if(callback == addr_incryanpage) + incryanpage(); + else if(callback == addr_getback1) + getback1(); + else if(callback == addr_quitkey) + quitkey(); + else if(callback == addr_dosreturn) + dosreturn(); + else if(callback == addr_getbacktoops) + getbacktoops(); + else if(callback == addr_selectslot) + selectslot(); + // examlist + else if(callback == addr_useobject) + useobject(); + else if(callback == addr_selectopenob) + selectopenob(); + else if(callback == addr_setpickup) + setpickup(); + else if(callback == addr_examinventory) + examinventory(); + // invlist1 + else if(callback == addr_dropobject) + dropobject(); + else if(callback == addr_useopened) + useopened(); + else if(callback == addr_setpickup) + setpickup(); + else if(callback == addr_intoinv) + intoinv(); + // withlist1 + else if(callback == addr_selectob) + selectob(); + // talklist + else if(callback == addr_moretalk) + moretalk(); + // quitlist + // destlist + else if(callback == addr_nextdest) + nextdest(); + else if(callback == addr_lastdest) + lastdest(); + else if(callback == addr_lookatplace) + lookatplace(); + else if(callback == addr_destselect) + destselect(); + // keypadlist + else if(callback == addr_buttonone) + buttonone(); + else if(callback == addr_buttontwo) + buttontwo(); + else if(callback == addr_buttonthree) + buttonthree(); + else if(callback == addr_buttonfour) + buttonfour(); + else if(callback == addr_buttonfive) + buttonfive(); + else if(callback == addr_buttonsix) + buttonsix(); + else if(callback == addr_buttonseven) + buttonseven(); + else if(callback == addr_buttoneight) + buttoneight(); + else if(callback == addr_buttonnine) + buttonnine(); + else if(callback == addr_buttonnought) + buttonnought(); + else if(callback == addr_buttonenter) + buttonenter(); + // menulist + // folderlist + else if(callback == addr_nextfolder) + nextfolder(); + else if(callback == addr_lastfolder) + lastfolder(); + // symbollist + else if(callback == addr_quitsymbol) + quitsymbol(); + else if(callback == addr_settopleft) + settopleft(); + else if(callback == addr_settopright) + settopright(); + else if(callback == addr_setbotleft) + setbotleft(); + else if(callback == addr_setbotright) + setbotright(); + // diarylist + else if(callback == addr_diarykeyn) + diarykeyn(); + else if(callback == addr_diarykeyp) + diarykeyp(); + else if(callback == addr_quitkey) + quitkey(); + // opslist + else if(callback == addr_getbackfromops) + getbackfromops(); + else if(callback == addr_discops) + discops(); + // discopslist + else if(callback == addr_loadgame) + loadgame(); + else if(callback == addr_savegame) + savegame(); + // mainlist, mainlist2 + else if(callback == addr_look) + look(); + else if(callback == addr_inventory) + inventory(); + else if(callback == addr_zoomonoff) + zoomonoff(); + else if(callback == addr_saveload) + saveload(); + else if(callback == addr_madmanrun) + madmanrun(); + else if(callback == addr_identifyob) + identifyob(); + // decidelist + else if(callback == addr_newgame) + newgame(); + else if(callback == addr_loadold) + loadold(); + // loadlist + else if(callback == addr_actualload) + actualload(); + // savelist + else if(callback == addr_actualsave) + actualsave(); + else { + debug("__dispatch_call remaining in checkcoords! %d", (int)callback); + __dispatch_call(callback); + } return; } ++rectWithCallback; |