diff options
author | Paul Gilbert | 2012-01-02 12:20:34 +1100 |
---|---|---|
committer | Strangerke | 2012-04-06 08:19:17 +0200 |
commit | 45f75c901cee61ffcc0c5f34de3d4399fb4dc877 (patch) | |
tree | e4cb514853a24c93bd3b3283c53e0f8933715d64 | |
parent | 2277f8f122f20227658d82b41b52bda8a2cdc85f (diff) | |
download | scummvm-rg350-45f75c901cee61ffcc0c5f34de3d4399fb4dc877.tar.gz scummvm-rg350-45f75c901cee61ffcc0c5f34de3d4399fb4dc877.tar.bz2 scummvm-rg350-45f75c901cee61ffcc0c5f34de3d4399fb4dc877.zip |
MORTEVIELLE: Reimplemented the loading of cfiec.mor more cleanly
This includes changing the absolute memory address loading to an array buffer, and changing calls to the zzuul method to use the reimplemented version.
-rw-r--r-- | engines/mortevielle/keyboard.cpp | 3 | ||||
-rw-r--r-- | engines/mortevielle/mort.cpp | 6 | ||||
-rw-r--r-- | engines/mortevielle/ovd1.cpp | 4 | ||||
-rw-r--r-- | engines/mortevielle/var_mor.cpp | 7 | ||||
-rw-r--r-- | engines/mortevielle/var_mor.h | 13 |
5 files changed, 13 insertions, 20 deletions
diff --git a/engines/mortevielle/keyboard.cpp b/engines/mortevielle/keyboard.cpp index 992a268b01..dae117e110 100644 --- a/engines/mortevielle/keyboard.cpp +++ b/engines/mortevielle/keyboard.cpp @@ -27,6 +27,7 @@ #include "mortevielle/keyboard.h" #include "mortevielle/var_mor.h" +#include "mortevielle/asm.h" namespace Mortevielle { @@ -70,7 +71,7 @@ int testou() { break; case '\26' : if ((c_zzz == 1) && (c_zzz == 2)) { - zzuul(adcfiec + 161, 0, 1644); + zzuul(&adcfiec[161 * 16], ((822 * 128) - (161 * 16)) / 64); c_zzz = succ(int, c_zzz); testou_result = 61; return testou_result; diff --git a/engines/mortevielle/mort.cpp b/engines/mortevielle/mort.cpp index 5975bde459..ea8cbcb663 100644 --- a/engines/mortevielle/mort.cpp +++ b/engines/mortevielle/mort.cpp @@ -27,6 +27,7 @@ #include "mortevielle/mort.h" #include "mortevielle/var_mor.h" /* les variables */ //Translation: Variables +#include "mortevielle/asm.h" #include "mortevielle/keyboard.h" /* la gestion du clavier */ //Translation: Keyboard manager #include "mortevielle/mouse.h" /* la souris */ //Translation: Mouse #include "mortevielle/level15.h" /* les fonctions de base */ //Translation: Lowlevel functions @@ -78,7 +79,7 @@ int mortevielle_main(int argc, const char *argv[]) { charpal(); charge_cfiph(); charge_cfiec(); - zzuul(adcfiec + 161, 0, 1644); + zzuul(&adcfiec[161 * 16], ((822 * 128) - (161 * 16)) / 64); c_zzz = 1; init_nbrepm(); init_mouse(); @@ -123,7 +124,8 @@ int mortevielle_main(int argc, const char *argv[]) { adzon(); takesav(0); if (rech_cfiec) charge_cfiec(); - for (crep = 1; crep <= c_zzz; crep ++) zzuul(adcfiec + 161, 0, 1644); + for (crep = 1; crep <= c_zzz; crep ++) + zzuul(&adcfiec[161 * 16], ((822 * 128) - (161 * 16)) / 64); charge_bruit5(); init_menu(); diff --git a/engines/mortevielle/ovd1.cpp b/engines/mortevielle/ovd1.cpp index cc094082c8..6400463a18 100644 --- a/engines/mortevielle/ovd1.cpp +++ b/engines/mortevielle/ovd1.cpp @@ -359,9 +359,7 @@ void ani50() { if (!f.open("cfiec.mor")) error("Missing file - cfiec.mor"); - /*$i-*/ - f.read(&mem[adcfiec + 0], 511); - f.read(&mem[adcfiec + 4088 + 0], 311); + f.read(&adcfiec[0], 822 * 128); f.close(); rech_cfiec = false; diff --git a/engines/mortevielle/var_mor.cpp b/engines/mortevielle/var_mor.cpp index 1a4a88e4ea..a017e55c0d 100644 --- a/engines/mortevielle/var_mor.cpp +++ b/engines/mortevielle/var_mor.cpp @@ -231,6 +231,8 @@ doublet tabpal[91][17]; t_pcga palcga[91]; pattern tpt[15]; +byte adcfiec[(4088 * 16) + (311 * 0x80)]; + /*---------------------------------------------------------------------------*/ /*-------------------- PROCEDURES AND FONCTIONS -----------------------*/ /*---------------------------------------------------------------------------*/ @@ -385,11 +387,6 @@ void box(int c, int Gd, int xo, int yo, int xi, int yi, int patt) { warning("TODO: box method not yet implemented"); } -// (* external 'c:\mc\zuul.com'; *) -void zzuul(int ad, int seg, int tai) { - warning("TODO: zzuul"); -} - // (* external 'c:\mc\decomp.com'; *) void decomp(int seg, int dep) { warning("TODO: decomp"); diff --git a/engines/mortevielle/var_mor.h b/engines/mortevielle/var_mor.h index 5fda6ae2d9..c75fc78081 100644 --- a/engines/mortevielle/var_mor.h +++ b/engines/mortevielle/var_mor.h @@ -32,9 +32,6 @@ namespace Mortevielle { -// Constants, types and variables used by Mortville Manor. -// version Nov.'88, Music and speech Oct.'88 - /* Constantes, Types et Variables pour le M A N O I R DE M O R T E V I E L L E @@ -69,7 +66,6 @@ const int segdon = 0x6c00; const int adani = 0x7314; const int adword = 0x4000; const int adtroct = 0x406b; -const int adcfiec = 0x4300; const int adbruit = 0x5cb0;/*2C00;*/ const int adbruit1 = 0x6924;/*3874;*/ const int adbruit2 = 0x6b30;/*3A80;*/ @@ -103,7 +99,7 @@ const int c_dialpre = 456; const int c_action = 476; const int c_saction = 497; const int c_dis = 502; -const int c_fin = 510; /* => n'existe pas ; si !! */ // Translation: "=> doesn't exist ; yes !!" +const int c_fin = 510; /* => n'existe pas ; si !! */ const int arega = 0; const int asoul = 154; @@ -174,7 +170,6 @@ extern const char f8[]; extern const byte rang[16]; - /*---------------------------------------------------------------------------*/ /*-------------------------------- TYPES --------------------------------*/ /*---------------------------------------------------------------------------*/ @@ -348,7 +343,7 @@ extern int x, extern int t_cph[6401]; extern byte tabdon[4001]; /* t_dxx : array[0..121] of int;*/ -extern Common::String stpou; /* donne le % d'indices */ // Translation: "provides the % of hints" +extern Common::String stpou; /* donne le % d'indices */ extern byte is; extern char mode; extern Common::String al_mess, @@ -390,6 +385,8 @@ extern doublet tabpal[91][17]; extern t_pcga palcga[91]; extern pattern tpt[15]; +extern byte adcfiec[822 * 128]; + /*---------------------------------------------------------------------------*/ /*------------------- PROCEDURES AND FONCTIONS ------------------------*/ /*---------------------------------------------------------------------------*/ @@ -437,8 +434,6 @@ extern void s_char(int Gd, int y, int dy); extern void s_sauv(int Gd, int y, int dy); // (* external 'c:\mc\boite.com'; *) extern void box(int c, int Gd, int xo, int yo, int xi, int yi, int patt); -// (* external 'c:\mc\zuul.com'; *) -extern void zzuul(int ad, int seg, int tai); // (* external 'c:\mc\decomp.com'; *) extern void decomp(int seg, int dep); // (* external 'c:\mc\affich.com'; *) |