aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/supernova/msn_def.h448
-rw-r--r--engines/supernova/supernova.h4
2 files changed, 95 insertions, 357 deletions
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h
index b2aef9d30c..3bdbb180c9 100644
--- a/engines/supernova/msn_def.h
+++ b/engines/supernova/msn_def.h
@@ -3,363 +3,108 @@
namespace Supernova {
-struct obj_struct
-{
- char *name,*description,id;
- int type;
- char click,click2,section;
- char exitroom,direction;
-};
-
-/* msn.c */
-void overlay(int value);
-void overlay_init(char *text);
-void wait2(int time);
-void set_color63(char x);
-void fadeout2();
-void fadein2();
-void init_roomlist();
-void anim_on();
-void anim_off();
-char *ltoa(long l);
-void test_vga();
-void test_mouse();
-void setmode(char m);
-void calculate_palette();
-void palette();
-void palette_5();
-void palette_blend();
-void fadeout();
-void fadein();
-void title_fadein();
-void palette_off();
-void screen_shake();
-void crit_err();
-void init_buffer();
-void get_inf(int seg);
-void move(int ziel_seg, int quell_seg, int chunks_16bit);
-void disp_puffer(long adr, int ziel, int anz);
-void load(char *name);
-void getspace(int para);
-void load_disk(char *name);
-void error_loading(char *name);
-void load_sound(char *name);
-void load_sound_disk(char *name);
-void image(char nr);
-void image_remove(char nr);
-char invert(char nr);
-void show_current_section();
-void text(char *t);
-void textxy(int x, int y, char *t, char f);
-int width(char *t);
-void set_int();
-void restore_int();
-void wait1(int time);
-void box(int x, int y, int b, int h, char f);
-void hgr_save(int x, int y, int w, int h);
-void hgr_restore(int x, int y, int w, int h);
-void message(char *text);
-void message_p(int pos, char *text);
-void message_remove();
-void init_menu();
-void command_box(int bef, bool hell);
-void show_menu();
-void exits();
-void mouse_reset();
-void hourglass();
-void arrow();
-void mouse_on();
-void mouse_off();
-void install_event_handler();
-void mouse_input();
-void mouse_input2();
-void mouse_input3();
-void mouse_wait(int time);
-void sentence(int nr, bool hell);
-void sentence_remove(int sentence, int nr);
-void sentence_add(int sentence, int nr);
-int dialog(int num, char *rowlength[6], char **text[6], int nr);
-void mouse_pos_dialog(int x, int y);
-void say(char *t);
-void reply(char *t, int aus1, int aus2);
-int command_print();
-void mouse_pos(int x, int y);
-void maus_pos_weg();
-void mouse_right();
-void input();
-void inventory_object(int nr, bool brightness);
-void empty_object(int nr);
-void inventory_arrow(int nr, bool brightness);
-void show_inventory();
-void take(struct obj_struct *obj);
-void inventory_remove(struct obj_struct *obj);
-void inventory_remove2(struct obj_struct *obj);
-void scroll_up();
-void scroll_down();
-void inventory_seize();
-void insert(char *text, char *character);
-void edit(int x, int y, char *t, int length);
-bool filecopy(int ziel, int quelle);
-void error_temp();
-bool save_game(int nr);
-bool load_game(int nr);
-void load_overlay();
-void load_overlay_start();
-void load_save(bool speichern, bool abbruch);
-void text_up();
-void text_down();
-void list(char *name, bool bestell);
-void help();
-void settextspeed();
-void altx();
-bool room_execute();
-char bios_key();
-char number_read(char min, char max, char standard);
-void do_setup();
-void main(int argc, char *argv[]);
-/* msn_mod.c */
-void init_mod();
-void rechne_note();
-void set_pattern(int p);
-void play_sb();
-void play_pc();
-void start_pc_mod();
-void titel_schrift();
-void nur_text();
-/* msn_ovl1.c */
-/* msn_r0.c */
-long systime();
-char *time_tostring(long z);
-void save_time();
-void load_time();
-void load_door();
-void door_sound();
-int door_open();
-int door_close();
-void money_take(int amount);
-bool combine(struct obj_struct *obj1, struct obj_struct *obj2, int o1, int o2);
-void ok();
-bool airless();
-bool helmet_takeoff();
-bool generic_specialcmd(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void shock();
-void alarm();
-void alarm_hearing();
-void outro();
-void dim(int color);
-void room_brightness();
-void turnon();
-void turnoff();
-void great(int nr);
-void init_rooms();
-void set_section(int room, int section, bool on);
-/* msn_r1.c */
-bool sb_corridor(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_hall(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_sleep(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void anim_sleep();
-void once_sleep();
-bool sb_cockpit(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void anim_cockpit();
-bool sb_airlock(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_hold(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_landingmod(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_generator(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void open_locker(struct obj_struct *obj, struct obj_struct *lock, int section);
-void close_locker(struct obj_struct *obj, struct obj_struct *lock, int section);
-bool sb_cabin_r3(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_cabin_l3(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_cabin_l2(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_bathroom(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_cockpit();
-void once_airlock();
-void once_hold();
-/* msn_r1_r.c */
-/* msn_r2.c */
-bool sb_rocks(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_rocks();
-bool sb_meetup(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_meetup();
-void anim_meetup();
-bool sb_entrance(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void anim_entrance();
-void anim_remaining();
-void shipstart();
-void nova_scroll();
-void supernova();
-bool sb_roger(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void anim_roger();
-void once_roger();
-bool sb_glider(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void anim_glider();
-bool sb_meetup2(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_meetup2();
-bool sb_meetup3(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-/* msn_r3.c */
-bool sb_cell(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void anim_cell();
-void once_cell();
-bool sb_corridor4(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_corridor();
-void once_corridor4();
-bool sb_corridor5(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_corridor6(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_corridor8(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_corridor9(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void shot(int a, int b);
-void guard_shot();
-bool sb_guard(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void guard3_shot();
-bool sb_guard3(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_bgang(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_bgang();
-bool sb_office1(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_office2(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_office3(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_office4(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_office5(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void once_office5();
-void walk(int a);
-void guard_walk();
-void telomat(int nr);
-void search_start();
-void search(int time);
-void guard_noticed();
-void busted(int i);
-void guard_back();
-bool sb_elevator(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-bool sb_station(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-void taxi();
-bool sb_sign(int verb, struct obj_struct *obj1, struct obj_struct *obj2);
-/* msn_s.c */
-void talk(int a1, int a2, int time_remain, int pos, char *t);
-void talkf(int a1, int a2, int dauer);
-void talk2(int a1, int a2, int b1, int b2, int duration, int pos, char *t);
-void title_image();
-void sirene();
-void intro();
-/* msn_snd.c */
-void play_sb_sample(int address);
-void wait_soundblaster();
-void call_driver();
-void init_soundblaster();
-void deinit_soundblaster();
-void stop();
-bool keypressed();
-void pc_sound_on(int int8, int int9, char speed);
-void pc_sound_off();
-void play_pc_sample(int adr);
-void init_sound_tab(bool mod);
-void init_sound();
-void deinit_sound();
-void play_music(bool kurz);
-void play(int adr);
-void sound_on();
-void sound(int counter);
-void sound_off();
-
+const int kScreenWidth = 320;
+const int kScreenHeight = 200;
+const int kTextSpeed[] = {19, 14, 10, 7, 4};
-#define MAX_SECTION 40
-#define MAX_SECTION_ZUS 50
-#define MAX_CLICKFIELD_ZUS 80
-#define MAX_OBJECT 25
-#define MAX_CARRY 30
+const int kMaxSection = 40;
+const int kMaxSectionZus = 50;
+const int kMaxClickfieldZus = 80;
+const int kMaxObject = 25;
+const int kMaxCarry = 30;
-#define ROOMNUM0 1
-#define ROOMNUM1 16
-#define ROOMNUM2 9
-#define ROOMNUM3 21
+const int kRoomsChap0 = 1;
+const int kRoomsChap1 = 16;
+const int kRoomsChap2 = 9;
+const int kRoomsChap3 = 21;
-#define NIL 0
-struct room
-{
- char *file;
- bool shown[MAX_SECTION];
- bool (*specialcmd)();
- void (*animation)();
- void (*onEntrance)();
- struct obj_struct object[MAX_OBJECT];
+enum ObjectType {
+ NULLTYPE = 0,
+ TAKE = 1,
+ OPEN = 2,
+ OPENED = 4,
+ CLOSED = 8,
+ EXIT = 16,
+ PRESS = 32,
+ COMBINABLE = 64,
+ CARRIED = 128,
+ UNNECESSARY = 256,
+ WORN = 512,
+ TALK = 1024,
+ OCCUPIED = 2048,
+ CAUGHT = 4096
};
-/* object type */
-#define TAKE 1
-#define OPEN 2
-#define OPENED 4
-#define CLOSED 8
-#define EXIT 16
-#define PRESS 32
-#define COMBINABLE 64
-#define CARRIED 128
-#define UNNECESSARY 256
-#define WORN 512
-#define TALK 1024
-#define OCCUPIED 2048
-#define CAUGHT 4096
-
-enum {ACTION_WALK,
- ACTION_LOOK,
- ACTION_TAKE,
- ACTION_OPEN,
- ACTION_CLOSE,
- ACTION_PRESS,
- ACTION_PULL,
- ACTION_USE,
- ACTION_TALK,
- ACTION_GIVE};
-
-enum {INTRO,CORRIDOR,HALL,SLEEP,COCKPIT,AIRLOCK,
- HOLD,LANDINGMODULE,GENERATOR,OUTSIDE,
- CABIN_R1,CABIN_R2,CABIN_R3,CABIN_L1,CABIN_L3,CABIN_L2,BATHROOM,
-
- ROCKS,CAVE,MEETUP,ENTRANCE,REST,ROGER,GLIDER,MEETUP2,MEETUP3,
-
- CELL,CORRIDOR1,CORRIDOR2,CORRIDOR3,CORRIDOR4,CORRIDOR5,CORRIDOR6,CORRIDOR7,CORRIDOR8,CORRIDOR9,
- BCORRIDOR,GUARD,GUARD3,OFFICE_L1,OFFICE_L2,OFFICE_R1,OFFICE_R2,OFFICE_L,
- ELEVATOR,STATION,SIGN};
-
-enum {X,
- KEYCARD,KNIFE,WATCH,
- SOCKET,
- BUTTON,HATCH1,
- BUTTON1,BUTTON2,MANOMETER,SUIT,HELMET,LIFESUPPORT,
- SCRAP_LK,OUTERHATCH_TOP,GENERATOR_TOP,TERMINALSTRIP,LANDINGMOD_OUTERHATCH,
- HOLD_WIRE,
- LANDINGMOD_BUTTON,LANDINGMOD_SOCKET,LANDINGMOD_WIRE,LANDINGMOD_HATCH,LANDINGMOD_MONITOR,
- KEYBOARD,
- KEYCARD2,OUTERHATCH,GENERATOR_WIRE,TRAP,SHORT_WIRE,CLIP,
- VOLTMETER,LADDER,GENERATOR_ROPE,
- KITCHEN_HATCH,SLEEP_SLOT,
- MONITOR,INSTRUMENTS,
- COMPUTER,CABINS,CABIN,
- SLOT_K1,SLOT_K2,SLOT_K3,SLOT_K4,
- SHELF1,SHELF2,SHELF3,SHELF4,
- ROPE,BOOK,DISCMAN,CHESS,
- SLOT_KL1,SLOT_KL2,SLOT_KL3,SLOT_KL4,
- SHELF_L1,SHELF_L2,SHELF_L3,SHELF_L4,
- PISTOL,BOOK2,SPOOL,
- RECORD,TURNTABLE,TURNTABLE_BUTTON,WIRE,WIRE2,PLUG,
- PEN,
- BATHROOM_DOOR,BATHROOM_EXIT,SHOWER,TOILET,
-
- STONE,
- SPACESHIPS,SPACESHIP,STAR,DOOR,MEETUP_SIGN,
- PORTER,BATHROOM_BUTTON,BATHROOM_SIGN,KITCHEN_SIGN,CAR_SLOT,
- ARS_BATHROOM,COINS,SCHNUCK,EGG,PILL,PILL_HULL,STAIRCASE,
- MEETUP_EXIT,
- ROGER_W,WALLET,KEYCARD_R,CUP,
- GLIDER_BUTTON1,GLIDER_BUTTON2,GLIDER_BUTTON3,GLIDER_BUTTON4,GLIDER_SLOT,GLIDER_BUTTONS,
- GLIDER_DISPLAY,GLIDER_INSTRUMENTS,GLIDER_KEYCARD,
- UFO,
+enum Action {
+ ACTION_WALK,
+ ACTION_LOOK,
+ ACTION_TAKE,
+ ACTION_OPEN,
+ ACTION_CLOSE,
+ ACTION_PRESS,
+ ACTION_PULL,
+ ACTION_USE,
+ ACTION_TALK,
+ ACTION_GIVE
+};
- CELL_BUTTON,CELL_TABLE,CELL_WIRE,TRAY,CELL_DOOR,MAGNET,
- NEWSPAPER,TABLE,
- PILLAR1,PILLAR2,DOOR1,DOOR2,DOOR3,DOOR4,
- GUARDIAN,LAMP,
- MASTERKEYCARD,PAINTING,MONEY,LOCKER,LETTER,
- JUNGLE,SLOT,STATION_SIGN,
+enum RoomID {
+ INTRO,CORRIDOR,HALL,SLEEP,COCKPIT,AIRLOCK,
+ HOLD,LANDINGMODULE,GENERATOR,OUTSIDE,
+ CABIN_R1,CABIN_R2,CABIN_R3,CABIN_L1,CABIN_L3,CABIN_L2,BATHROOM,
+
+ ROCKS,CAVE,MEETUP,ENTRANCE,REST,ROGER,GLIDER,MEETUP2,MEETUP3,
+
+ CELL,CORRIDOR1,CORRIDOR2,CORRIDOR3,CORRIDOR4,CORRIDOR5,CORRIDOR6,CORRIDOR7,CORRIDOR8,CORRIDOR9,
+ BCORRIDOR,GUARD,GUARD3,OFFICE_L1,OFFICE_L2,OFFICE_R1,OFFICE_R2,OFFICE_L,
+ ELEVATOR,STATION,SIGN,NULLROOM
+};
- TICKETS};
+enum ObjectID {
+ NULLOBJECT,
+ KEYCARD,KNIFE,WATCH,
+ SOCKET,
+ BUTTON,HATCH1,
+ BUTTON1,BUTTON2,MANOMETER,SUIT,HELMET,LIFESUPPORT,
+ SCRAP_LK,OUTERHATCH_TOP,GENERATOR_TOP,TERMINALSTRIP,LANDINGMOD_OUTERHATCH,
+ HOLD_WIRE,
+ LANDINGMOD_BUTTON,LANDINGMOD_SOCKET,LANDINGMOD_WIRE,LANDINGMOD_HATCH,LANDINGMOD_MONITOR,
+ KEYBOARD,
+ KEYCARD2,OUTERHATCH,GENERATOR_WIRE,TRAP,SHORT_WIRE,CLIP,
+ VOLTMETER,LADDER,GENERATOR_ROPE,
+ KITCHEN_HATCH,SLEEP_SLOT,
+ MONITOR,INSTRUMENTS,
+ COMPUTER,CABINS,CABIN,
+ SLOT_K1,SLOT_K2,SLOT_K3,SLOT_K4,
+ SHELF1,SHELF2,SHELF3,SHELF4,
+ ROPE,BOOK,DISCMAN,CHESS,
+ SLOT_KL1,SLOT_KL2,SLOT_KL3,SLOT_KL4,
+ SHELF_L1,SHELF_L2,SHELF_L3,SHELF_L4,
+ PISTOL,BOOK2,SPOOL,
+ RECORD,TURNTABLE,TURNTABLE_BUTTON,WIRE,WIRE2,PLUG,
+ PEN,
+ BATHROOM_DOOR,BATHROOM_EXIT,SHOWER,TOILET,
+
+ STONE,
+ SPACESHIPS,SPACESHIP,STAR,DOOR,MEETUP_SIGN,
+ PORTER,BATHROOM_BUTTON,BATHROOM_SIGN,KITCHEN_SIGN,CAR_SLOT,
+ ARS_BATHROOM,COINS,SCHNUCK,EGG,PILL,PILL_HULL,STAIRCASE,
+ MEETUP_EXIT,
+ ROGER_W,WALLET,KEYCARD_R,CUP,
+ GLIDER_BUTTON1,GLIDER_BUTTON2,GLIDER_BUTTON3,GLIDER_BUTTON4,GLIDER_SLOT,GLIDER_BUTTONS,
+ GLIDER_DISPLAY,GLIDER_INSTRUMENTS,GLIDER_KEYCARD,
+ UFO,
+
+ CELL_BUTTON,CELL_TABLE,CELL_WIRE,TRAY,CELL_DOOR,MAGNET,
+ NEWSPAPER,TABLE,
+ PILLAR1,PILLAR2,DOOR1,DOOR2,DOOR3,DOOR4,
+ GUARDIAN,LAMP,
+ MASTERKEYCARD,PAINTING,MONEY,LOCKER,LETTER,
+ JUNGLE,SLOT,STATION_SIGN,
+
+ TICKETS
+};
enum MessagePosition {
kMessageNormal,
@@ -425,8 +170,7 @@ const byte mouseWait[64] = {
0x34,0x2c,0x14,0x28,0xfe,0x7f,0x00,0x00
};
-const byte font[][5] =
-{
+const byte font[][5] = {
{0x00,0x00,0x00,0xff,0x00},
{0x5f,0xff,0x00,0x00,0x00},
{0x03,0x00,0x03,0xff,0x00},
@@ -608,8 +352,6 @@ const byte font[][5] =
0x2c, 0x34, 0x40, 0x2c, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
-
-
}
#endif // MSN_DEF_H
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index 13c3dab2eb..4c6787b91a 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -37,10 +37,6 @@
namespace Supernova {
-const int kScreenWidth = 320;
-const int kScreenHeight = 200;
-const int kTextSpeed[] = {19, 14, 10, 7, 4};
-
class SupernovaEngine : public Engine {
public:
SupernovaEngine(OSystem *syst);