Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

320 lines (305 sloc) 14.591 kB
/* $Id$
* MegaZeux
*
* Copyright (C) 1996 Greg Janson
* Copyright (C) 1998 Matthew D. Williams - dbwilli@scsn.net
* Copyright (C) 2004 B.D.A - Gilead Kutnick
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
// Translation of data.asm to C
#include "data.h"
#include "const.h"
unsigned char curr_board = 0; // Current board
// Current MZX file
char curr_file[FILENAME_SIZE] = "CAVERNS.MZX";
// Current SAVE file
char curr_sav[FILENAME_SIZE] = "SAVED.SAV";
char help_file[PATHNAME_SIZE]; // Drive + Path + Filename
char megazeux_dir[PATHNAME_SIZE]; // Directory started in
char current_dir[PATHNAME_SIZE]; // Current directory
unsigned char megazeux_drive = 2; // Startup drive (0=A...)
unsigned char current_drive = 2; // Current drive (0=A...)
char quicksave_file[FILENAME_SIZE]; // Current quicksave filename
// Mouse state stuff
unsigned int saved_mouse_x = 0;
unsigned int saved_mouse_y = 0;
unsigned int saved_mouse_buttons = 0;
// Board "save chunk"
char mod_playing[FILENAME_SIZE]; // Mod currently playing
char refresh_mod_playing = 1; // Load mod no matter what
// World "save chunk"
unsigned char music_on = 1; // If music is on
unsigned char sfx_on = 1; // If pc sfx is on
unsigned char music_device = 0; // Music device
unsigned char music_gvol = 8; // Global Music volume (x/8)
unsigned char sound_gvol = 8; // Global Sound volume (x/8)
unsigned char overall_speed = 4; // 1 through 7
unsigned char scroll_color = 15; // Current scroll color
unsigned char cheats_active = 1; // (additive flag)
unsigned char current_help_sec = 0; // Use for context-sens.help
char saved_pl_color;
int was_zapped;
char *update_done;
int update_done_size = 0;
// Array of flags for things
unsigned int flags[] =
{
A_UNDER, // 0x00 Space
0, // 0x01 Normal
0, // 0x02 Solid
0, // 0x03 Tree
0, // 0x04 Line
0, // 0x05 Customblock
A_SHOOTABLE | A_BLOW_UP, // 0x06 Breakaway
A_SHOOTABLE | A_BLOW_UP, // 0x07 Customblock
A_PUSHABLE | A_BLOW_UP, // 0x08 Boulder
A_PUSHABLE | A_BLOW_UP, // 0x09 Crate
A_PUSHABLE | A_BLOW_UP, // 0x0A Custompush
A_PUSHABLE, // 0x0B Box
A_PUSHABLE, // 0x0C Customsolidpush
A_UNDER, // 0x0D Fake
A_UNDER, // 0x0E Carpet
A_UNDER, // 0x0F Floor
A_UNDER, // 0x10 Tiles
A_UNDER, // 0x11 Customfloor
A_UNDER | A_BLOW_UP, // 0x12 Web
A_UNDER | A_BLOW_UP, // 0x13 Thickweb
A_UNDER, // 0x14 Stillwater
A_UNDER | A_AFFECT_IF_STOOD, // 0x15 NWater
A_UNDER | A_AFFECT_IF_STOOD, // 0x16 SWater
A_UNDER | A_AFFECT_IF_STOOD, // 0x17 EWater
A_UNDER | A_AFFECT_IF_STOOD, // 0x18 WWater
A_UNDER | A_AFFECT_IF_STOOD | A_UPDATE, // 0x19 Ice
A_UNDER | A_AFFECT_IF_STOOD | A_UPDATE, // 0x1A Lava
A_ITEM | A_BLOW_UP, // 0x1B Chest
A_ITEM | A_PUSHABLE | A_BLOW_UP | A_SHOOTABLE, // 0x1C Gem
A_ITEM | A_PUSHABLE | A_BLOW_UP | A_SHOOTABLE, // 0x1D Magicgem
A_ITEM | A_PUSHABLE, // 0x1E Health
A_ITEM | A_PUSHABLE, // 0x1F Ring
A_ITEM | A_PUSHABLE, // 0x20 Potion
A_ITEM | A_PUSHABLE | A_UPDATE, // 0x21 Energizer
A_UNDER | A_ITEM, // 0x22 Goop
A_ITEM | A_PUSHABLE, // 0x23 Ammo
A_ITEM | A_PUSHABLE | A_EXPLODE, // 0x24 Bomb
A_PUSHABLE | A_EXPLODE | A_UPDATE, // 0x25 LitBomb
A_HURTS | A_UPDATE, // 0x26 Explosion
A_ITEM | A_PUSHABLE, // 0x27 Key
A_ITEM, // 0x28 Lock
A_ITEM, // 0x29 Door
A_UPDATE, // 0x2A Opening/closing door
A_ENTRANCE | A_UNDER, // 0x2B Stairs
A_ENTRANCE | A_UNDER, // 0x2C Cave
A_UPDATE, // 0x2D CW
A_UPDATE, // 0x2E CCW
A_ITEM, // 0x2F Gate
A_UPDATE | A_UNDER, // 0x30 OpenGate
A_SPEC_PUSH | A_ITEM | A_UPDATE, // 0x31 Transport
A_ITEM | A_PUSHABLE, // 0x32 Coin
A_UPDATE, // 0x33 MovingWall N
A_UPDATE, // 0x34 MovingWall S
A_UPDATE, // 0x35 MovingWall E
A_UPDATE, // 0x36 MovingWall W
A_ITEM | A_PUSHABLE | A_BLOW_UP, // 0x37 Pouch
A_UPDATE, // 0x38 Pusher
A_PUSHNS, // 0x39 SliderNS
A_PUSHEW, // 0x3A SliderEW
A_UPDATE | A_HURTS, // 0x3B Lazer
A_UPDATE, // 0x3C LazerWallShooter
A_UPDATE | A_BLOW_UP | A_SHOOTABLE | A_ITEM | A_ENEMY, // 0x3D Bullet
A_UPDATE | A_HURTS | A_EXPLODE, // 0x3E Missile
A_UPDATE | A_UNDER | A_AFFECT_IF_STOOD, // 0x3F Fire
0, // 0x40
A_ITEM, // 0x41 Forest
A_PUSHABLE | A_ITEM | A_UPDATE, // 0x42 Life
A_UPDATE | A_UNDER | A_ENTRANCE, // 0x43 Whirlpool 1
A_UPDATE | A_UNDER | A_ENTRANCE, // 0x44 Whirlpool 2
A_UPDATE | A_UNDER | A_ENTRANCE, // 0x45 Whirlpool 3
A_UPDATE | A_UNDER | A_ENTRANCE, // 0x46 Whirlpool 4
A_ITEM, // 0x47 Invisible
A_SPEC_SHOT, // 0x48 RicochetPanel
A_SPEC_SHOT, // 0x49 Ricochet
A_ITEM | A_SPEC_SHOT | A_SPEC_BOMB | A_UPDATE, // 0x4A Mine
A_HURTS, // 0x4B Spike
A_HURTS, // 0x4C Customhurt
0, // 0x4D Text
A_UPDATE | A_ENEMY | A_BLOW_UP, // 0x4E ShootingFire
A_UPDATE | A_ENEMY | A_BLOW_UP | A_PUSHABLE, // 0x4F Seeker
A_UPDATE | A_PUSHABLE | A_ENEMY | A_SHOOTABLE | A_BLOW_UP, // 0x50 Snake
A_UPDATE | A_EXPLODE | A_ITEM | A_SPEC_SHOT | A_PUSHABLE, // 0x51 Eye
A_UPDATE | A_BLOW_UP | A_PUSHABLE | A_ITEM | A_SHOOTABLE, // 0x52 Thief
A_UPDATE | A_ITEM | A_SPEC_BOMB | A_SPEC_SHOT, // 0x53 SlimeBlob
A_UPDATE | A_ENEMY | A_BLOW_UP | A_PUSHABLE | A_SPEC_SHOT, // 0x54 Runner
A_UPDATE | A_ITEM | A_PUSHABLE | A_SPEC_BOMB | A_SPEC_SHOT, // 0x55 Ghost
A_UPDATE | A_SPEC_SHOT | A_SPEC_BOMB | A_ITEM, // 0x56 Dragon
A_UPDATE | A_ITEM | A_BLOW_UP | A_SPEC_SHOT | A_PUSHABLE, // 0x57 Fish
A_UPDATE | A_BLOW_UP | A_SHOOTABLE | A_ENEMY, // 0x58 Shark
A_UPDATE | A_ENEMY | A_BLOW_UP | A_SPEC_SHOT | A_PUSHABLE, // 0x59 Spider
A_UPDATE | A_ENEMY | A_SHOOTABLE | A_PUSHABLE | A_BLOW_UP, // 0x5A Goblin (90)
A_UPDATE | A_PUSHABLE | A_SHOOTABLE | A_ENEMY | A_BLOW_UP, // 0x5B Tiger
A_UPDATE, // 0x5C BulletGun
A_UPDATE, // 0x5D SpinningGun
A_UPDATE | A_ENEMY | A_SPEC_SHOT | A_PUSHABLE | A_BLOW_UP, // 0x5E Bear
A_UPDATE | A_BLOW_UP | A_ENEMY | A_SHOOTABLE | A_PUSHABLE, // 0x5F BearCub
0, // 0x60 '?'
A_UPDATE, // 0x61 MissileGun
0, // 0x62 98
0, // 0x63 99
0, // 0x64 100
0, // 0x65 101
0, // 0x66 102
0, // 0x67 103
0, // 0x68 104
0, // 0x69 105
0, // 0x6A 106
0, // 0x6B 107
0, // 0x6C 108
0, // 0x6D 109
0, // 0x6E 110
0, // 0x6F 111
0, // 0x70 112
0, // 0x71 113
0, // 0x72 114
0, // 0x73 115
0, // 0x74 116
0, // 0x75 117
0, // 0x76 118
0, // 0x77 119
0, // 0x78 120
0, // 0x79 x0C 121
A_SPEC_STOOD | A_SPEC_PUSH, // 0x7A x0D Sensor
A_ITEM | A_UPDATE | A_SPEC_SHOT | A_SPEC_BOMB | A_SPEC_PUSH,// 0x7B x0E Robot (pushable)
A_ITEM | A_UPDATE | A_SPEC_SHOT | A_SPEC_BOMB, // 0x7C x0F Robot
A_ITEM, // 0x7D x00 Sign
A_ITEM | A_PUSHABLE, // 0x7E x01 Scroll
A_SPEC_SHOT | A_SPEC_PUSH | A_SPEC_BOMB // 0x7F x02 Player
};
//Names for all things
char *thing_names[128] =
{
"Space",
"Normal",
"Solid",
"Tree",
"Line",
"CustomBlock",
"Breakaway",
"CustomBreak",
"Boulder",
"Crate",
"CustomPush",
"Box",
"CustomBox",
"Fake",
"Carpet",
"Floor",
"Tiles",
"CustomFloor",
"Web",
"ThickWeb",
"StillWater",
"NWater",
"SWater",
"EWater",
"WWater",
"Ice",
"Lava",
"Chest",
"Gem",
"MagicGem",
"Health",
"Ring",
"Potion",
"Energizer",
"Goop",
"Ammo",
"Bomb",
"LitBomb",
"Explosion",
"Key",
"Lock",
"Door",
"OpenDoor",
"Stairs",
"Cave",
"CWRotate",
"CCWRotate",
"Gate",
"OpenGate",
"Transport",
"Coin",
"NMovingWall",
"SMovingWall",
"EMovingWall",
"WMovingWall",
"Pouch",
"Pusher",
"SliderNS",
"SliderEW",
"Lazer",
"LazerGun",
"Bullet",
"Missile",
"Fire",
"[unknown]",
"Forest",
"Life",
"Whirlpool",
"Whirlpool2",
"Whirlpool3",
"Whirlpool4",
"InvisWall",
"RicochetPanel",
"Ricochet",
"Mine",
"Spike",
"CustomHurt",
"Text",
"ShootingFire",
"Seeker",
"Snake",
"Eye",
"Thief",
"Slimeblob",
"Runner",
"Ghost",
"Dragon",
"Fish",
"Shark",
"Spider",
"Goblin",
"SpittingTiger",
"BulletGun",
"SpinningGun",
"Bear",
"BearCub",
"[unknown]",
"MissileGun",
"Sprite",
"Sprite_colliding",
"Image_file",
"[unknown]",
"[unknown]","[unknown]","[unknown]","[unknown]",
"[unknown]","[unknown]","[unknown]","[unknown]",
"[unknown]","[unknown]","[unknown]","[unknown]",
"[unknown]","[unknown]","[unknown]","[unknown]",
"[unknown]","[unknown]","[unknown]","[unknown]",
"Sensor",
"PushableRobot",
"Robot",
"Sign",
"Scroll",
"Player"
};
Jump to Line
Something went wrong with that request. Please try again.