If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Development:Magic Carpet (DOS)

From The Cutting Room Floor
Jump to navigation Jump to search

This page details development materials of Magic Carpet (DOS).

The original standalone release of the Magic Carpet: Hidden Worlds expansion accidentally included the Watcom .MAP file for the game's executable - CARPET.MAP. This lists all function names and reveals some interesting functions that were cut from the final game.

Timestamp

The file reports as follows:

Created on:       95/03/03 13:05:06

However, its contents do not match the included executable on the disc, seemingly referring to an earlier version with more debug functionality that was removed for the final release.

(Source: Mefistotelis)

Creature Functions

There are behavior functions for 21 creatures (CREAT_00.C - CREAT_20.C), even though there are only 17 creatures in the final game. There are also initialization functions for 25 different creatures (init_creature_0 - init_creature_24).

Familiars

Present in CARPET\FAMILIAR.C. It seems there would be familiars the player could collect to assist them in the game. Only two are listed: a raven (fn_familiar_raven) and a sprite (fn_familiar_sprite).

Tribesman Weapon Upgrades

It seems the tribesmen (and therefore possibly skeletons too) at one point would have various weapon upgrades, as well as the basic bows and arrows that are their sole armament in the game. The following are defined:

init_weapon_sling
init_weapon_crossbow
init_weapon_sword
init_weapon_spear
init_weapon_rifle

Based on their number it may be these were an early castle defence upgrade based on castle level that was cut.

Cut Powerups

There are definitions for powerups in the game, seemingly in addition to the spells the player gets in the final game:

init_powerup_speed_up
init_powerup_pulse
init_powerup_shield
init_powerup_floater
init_powerup_armour
init_powerup_rain_proofing

It's not known what "rain proofing" would do. Presumably, it would protect against the removed weather effects (see below).

Weather Effects

Functions for weather effects. In the final game, only Wind is placed on a couple of levels and does nothing. These functions suggest they would have had a more direct effect on the player:

affect_by_wind
fn_weather_wind
fn_weather_thermals
fn_weather_thunder_cloud
fn_weather_rain_cloud
fn_weather_tornado

Tornados would of course be implemented in the sequel.

Cut Spells

There are functions for two cut spells mentioned in pre-release coverage, Alliance (which would debut in Magic Carpet 2) and Blindness:

fn_shot_blindness
fn_effect_blindness

init_shot_alliance
init_effect_alliance
init_spell_alliance
fn_shot_alliance
fn_spell_alliance_one
fn_spell_alliance_to_all
fn_spell_alliance

Editor

As with many other Bullfrog games, there is a function name and commandline argument for an editor. Given that, it's extremely likely that at one point the game could be booted into the editor on startup.

Misc.

There's a function with the name "robs_bollocks". It's not clear what this is, assuming it's meant to be anything at all and not just a cheeky developer comment.

(Source: Michael Howard)


Source Tree

C source code files and paths:

D:\CARPET\CDROM.C
D:\CARPET\COLIDE.C
D:\CARPET\COMMAND.C
D:\CARPET\COMPUTER.C
D:\CARPET\CONTROL.C
D:\CARPET\CHECK_AR.C
D:\CARPET\CREATURE.C
D:\CARPET\CREAT_00.C
D:\CARPET\CREAT_01.C
D:\CARPET\CREAT_02.C
D:\CARPET\CREAT_03.C
D:\CARPET\CREAT_04.C
D:\CARPET\CREAT_05.C
D:\CARPET\CREAT_06.C
D:\CARPET\CREAT_07.C
D:\CARPET\CREAT_08.C
D:\CARPET\CREAT_09.C
D:\CARPET\CREAT_10.C
D:\CARPET\CREAT_11.C
D:\CARPET\CREAT_12.C
D:\CARPET\CREAT_13.C
D:\CARPET\CREAT_14.C
D:\CARPET\CREAT_15.C
D:\CARPET\CREAT_16.C
D:\CARPET\CREAT_17.C
D:\CARPET\CREAT_18.C
D:\CARPET\CREAT_19.C
D:\CARPET\CREAT_20.C
D:\CARPET\DANGER.C
D:\CARPET\DATA.C
D:\CARPET\DRAW.C
D:\CARPET\EDITOR.C
D:\CARPET\EFFECT.C
D:\CARPET\ENGINE.C
D:\CARPET\FAMILIAR.C
D:\CARPET\FRACMAP.C
D:\CARPET\GAME.C
D:\CARPET\GENERATE.C
D:\CARPET\INIT.C
D:\CARPET\IO.C
D:\CARPET\LGLOBAL.C
D:\CARPET\MAIN.C
D:\CARPET\MAP.C
D:\CARPET\MENU.C
D:\CARPET\MOVE.C
D:\CARPET\OBJECTIV.C
D:\CARPET\ORGDATA.C
D:\CARPET\PCHOST.C
D:\CARPET\PLAYER.C
D:\CARPET\POWERUP.C
D:\CARPET\SCANNER.C
D:\CARPET\SCENERY.C
D:\CARPET\SHOT.C
D:\CARPET\SIGHT.C
D:\CARPET\SPELL.C
D:\CARPET\SOUND.C
D:\CARPET\SUPPORT.C
D:\CARPET\SWITCH.C
D:\CARPET\TABLES.C
D:\CARPET\TEXT.C
D:\CARPET\TIMER.C
D:\CARPET\VERSION.C
D:\CARPET\WEAPON.C
D:\CARPET\WEATHER.C
D:\CARPET\SSPRITE.C
D:\CARPET\HEAP.C
D:\CARPET\ANIMDYN.C
D:\CARPET\INIT_MUS.C
D:\CARPET\OPEN_MUS.C
D:\CARPET\INIT_SOU.C
D:\CARPET\OPEN_SOU.C
D:\CARPET\SFADEIN.C
D:\CARPET\SFADEOUT.C
D:\CARPET\NETWORK.C
D:\CARPET\PLAYSAMP.C
D:\CARPET\IKEYBOAR.C
D:\CARPET\VFX.C
D:\CARPET\ANIM.C
D:\CARPET\SCREENS.C
D:\CARPET\MEMORY.C
D:\CARPET\MYALLOC.C
D:\CARPET\JOYSTICK.C
D:\CARPET\CPUC.C
D:\CARPET\LOAD_DAT.C
D:\APROJ\DOSAPI.20B\midieng.c
D:\APROJ\DOSAPI.20B\hardware.c
D:\APROJ\DOSAPI.20B\midivar.c
D:\APROJ\DOSAPI.20B\embed.c