/* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ /* * $Source: /cvsroot/dxx-rebirth/d1x-rebirth/main/newdemo.h,v $ * $Revision: 1.1.1.1 $ * $Author: zicodxx $ * $Date: 2006/03/17 19:44:19 $ * * . * * $Log: newdemo.h,v $ * Revision 1.1.1.1 2006/03/17 19:44:19 zicodxx * initial import * * Revision 1.1.1.1 1999/06/14 22:12:47 donut * Import of d1x 1.37 source. * * Revision 2.0 1995/02/27 11:27:18 john * New version 2.0, which has no anonymous unions, builds with * Watcom 10.0, and doesn't require parsing BITMAPS.TBL. * * Revision 1.43 1995/01/19 09:41:43 allender * prototype for laser level recording * * Revision 1.42 1995/01/18 18:48:49 allender * added function prototype for door_open * * Revision 1.41 1995/01/17 17:42:31 allender * new prototypes for ammo counts * * Revision 1.40 1995/01/04 15:04:27 allender * added some different prototypes for registered * * Revision 1.39 1995/01/03 11:45:11 allender * extern function definition * * Revision 1.38 1994/12/29 16:43:31 allender * new function prototype * * Revision 1.37 1994/12/28 14:15:27 allender * new function prototypes * * Revision 1.36 1994/12/21 12:46:41 allender * new functions for multiplayer deaths and kills * * Revision 1.35 1994/12/12 11:32:55 allender * added new record function to restore after in rearview mode * * Revision 1.34 1994/12/08 21:03:15 allender * added new param to record_player_flags * * Revision 1.33 1994/12/08 13:47:01 allender * removed function call to record_rearview * * Revision 1.32 1994/12/06 12:57:10 allender * added new prototype for multi decloaking * * Revision 1.31 1994/12/01 11:46:34 allender * added recording prototype for multi player cloak * * Revision 1.30 1994/11/27 23:04:22 allender * function prototype for recording new levels * * Revision 1.29 1994/11/07 08:47:43 john * Made wall state record. * * Revision 1.28 1994/11/05 17:22:53 john * Fixed lots of sequencing problems with newdemo stuff. * * Revision 1.27 1994/11/04 16:48:49 allender * extern Newdemo_do_interpolate variable * * Revision 1.26 1994/11/02 14:08:53 allender * record rearview * * Revision 1.25 1994/10/31 13:35:04 allender * added two record functions to save and restore cockpit state on * death sequence * * Revision 1.24 1994/10/29 16:01:11 allender * added ND_STATE_NODEMOS to indicate that there are no demos currently * available for playback * * Revision 1.23 1994/10/28 12:41:58 allender * add homing distance recording event * * Revision 1.22 1994/10/27 16:57:32 allender * removed VCR_MODE stuff, and added monitor blowup effects * * Revision 1.21 1994/10/26 14:44:48 allender * completed hacked in vcr type demo playback states * * Revision 1.20 1994/10/26 13:40:38 allender * more vcr demo playback defines * * Revision 1.19 1994/10/26 08:51:26 allender * record player weapon change * * Revision 1.18 1994/10/25 16:25:31 allender * prototypes for shield, energy and flags * * Revision 1.17 1994/08/15 18:05:30 john * *** empty log message *** * * Revision 1.16 1994/07/21 13:11:26 matt * Ripped out remants of old demo system, and added demo only system that * disables object movement and game options from menu. * * Revision 1.15 1994/07/05 12:49:02 john * Put functionality of New Hostage spec into code. * * Revision 1.14 1994/06/27 15:53:12 john * #define'd out the newdemo stuff * * * Revision 1.13 1994/06/24 17:01:25 john * Add VFX support; Took Game Sequencing, like EndGame and stuff and * took it out of game.c and into gameseq.c * * Revision 1.12 1994/06/21 19:46:05 john * Added palette effects to demo recording. * * Revision 1.11 1994/06/21 14:19:58 john * Put in hooks to record HUD messages. * * Revision 1.10 1994/06/20 11:50:42 john * Made demo record flash effect, and control center triggers. * * Revision 1.9 1994/06/17 18:01:29 john * A bunch of new stuff by John * * Revision 1.8 1994/06/17 12:13:34 john * More newdemo stuff; made editor->game transition start in slew mode. * * Revision 1.7 1994/06/16 13:02:02 john * Added morph hooks. * * Revision 1.6 1994/06/15 19:01:42 john * Added the capability to make 3d sounds play just once for the * laser hit wall effects. * * Revision 1.5 1994/06/15 14:57:11 john * Added triggers to demo recording. * * Revision 1.4 1994/06/14 20:42:19 john * Made robot matztn cntr not work until no robots or player are * in the segment. * * Revision 1.3 1994/06/14 14:43:52 john * Made doors work with newdemo system. * * Revision 1.2 1994/06/13 21:02:44 john * Initial version of new demo recording system. * * Revision 1.1 1994/06/13 15:51:09 john * Initial revision * * */ #ifndef _NEWDEMO_H #define _NEWDEMO_H #ifdef NEWDEMO #define ND_STATE_NORMAL 0 #define ND_STATE_RECORDING 1 #define ND_STATE_PLAYBACK 2 #define ND_STATE_PAUSED 3 #define ND_STATE_REWINDING 4 #define ND_STATE_FASTFORWARD 5 #define ND_STATE_ONEFRAMEFORWARD 6 #define ND_STATE_ONEFRAMEBACKWARD 7 #define ND_STATE_PRINTSCREEN 8 #define DEMO_DIR "demos/" // Gives state of recorder extern int Newdemo_state; extern int NewdemoFrameCount; extern int Newdemo_game_mode; extern int Newdemo_vcr_state; extern sbyte Newdemo_do_interpolate; //Does demo start automatically? extern int Auto_demo; // Functions called during recording process... extern void newdemo_record_start_demo(); extern void newdemo_record_start_frame(int frame_number, fix frame_time ); extern void newdemo_record_render_object(object * obj); extern void newdemo_record_viewer_object(object * obj); extern void newdemo_record_sound_3d( int soundno, int angle, int volume ); extern void newdemo_record_sound_3d_once( int soundno, int angle, int volume ); extern void newdemo_record_sound_once( int soundno ); extern void newdemo_record_sound( int soundno ); extern void newdemo_record_wall_hit_process( int segnum, int side, int damage, int playernum ); extern void newdemo_record_trigger( int segnum, int side, int objnum ); extern void newdemo_record_hostage_rescued( int hostage_num ); extern void newdemo_record_morph_frame(); extern void newdemo_record_player_stats(int shields, int energy, int score ); extern void newdemo_record_wall_toggle(int segnum, int side ); extern void newdemo_record_control_center_destroyed(); extern void newdemo_record_hud_message(char *s); extern void newdemo_record_palette_effect(short r, short g, short b); #ifdef SHAREWARE extern void newdemo_record_player_energy(int); extern void newdemo_record_player_shields(int); #else extern void newdemo_record_player_energy(int, int); extern void newdemo_record_player_shields(int, int); #endif extern void newdemo_record_player_flags(uint, uint); extern void newdemo_record_player_weapon(int, int); extern void newdemo_record_effect_blowup(short, int, vms_vector *); extern void newdemo_record_homing_distance(fix); extern void newdemo_record_letterbox(void); extern void newdemo_record_rearview(void); extern void newdemo_record_restore_cockpit(void); extern void newdemo_record_wall_set_tmap_num1(short seg,ubyte side,short cseg,ubyte cside,short tmap); extern void newdemo_record_wall_set_tmap_num2(short seg,ubyte side,short cseg,ubyte cside,short tmap); extern void newdemo_record_multi_cloak(int pnum); extern void newdemo_record_multi_decloak(int pnum); extern void newdemo_set_new_level(int level_num); extern void newdemo_record_restore_rearview(void); #ifndef SHAREWARE extern void newdemo_record_multi_death(int pnum); extern void newdemo_record_multi_kill(int pnum, sbyte kill); extern void newdemo_record_multi_connect(int pnum, int new_player, char *new_callsign); extern void newdemo_record_multi_reconnect(int pnum); extern void newdemo_record_multi_disconnect(int pnum); extern void newdemo_record_player_score(int score); extern void newdemo_record_multi_score(int pnum, int score); extern void newdemo_record_primary_ammo(int old_ammo, int new_ammo); extern void newdemo_record_secondary_ammo(int old_ammo, int new_ammo); extern void newdemo_record_door_opening(int segnum, int side); #endif extern void newdemo_record_laser_level(sbyte old_level, sbyte new_level); // Functions called during playback process... extern void newdemo_object_move_all(); extern void newdemo_playback_one_frame(); extern void newdemo_goto_end(); extern void newdemo_goto_beginning(); // Interactive functions to control playback/record; extern void newdemo_start_playback( char * filename ); extern void newdemo_stop_playback(); extern void newdemo_start_recording(); extern void newdemo_stop_recording(); extern int newdemo_get_percent_done(); extern void newdemo_record_link_sound_to_object3( int soundno, short objnum, fix max_volume, fix max_distance, int loop_start, int loop_end ); extern int newdemo_find_object( int signature ); extern void newdemo_record_kill_sound_linked_to_object( int objnum ); #endif #endif