]> icculus.org git repositories - btb/d2x.git/blob - main/newdemo.h
use the orientation parameter of g3_draw_bitmap
[btb/d2x.git] / main / newdemo.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14 /*
15  *
16  * header for demo playback system
17  *
18  */
19
20
21 #ifndef _NEWDEMO_H
22 #define _NEWDEMO_H
23
24 #ifdef NEWDEMO
25
26 #define ND_STATE_NORMAL             0
27 #define ND_STATE_RECORDING          1
28 #define ND_STATE_PLAYBACK           2
29 #define ND_STATE_PAUSED             3
30 #define ND_STATE_REWINDING          4
31 #define ND_STATE_FASTFORWARD        5
32 #define ND_STATE_ONEFRAMEFORWARD    6
33 #define ND_STATE_ONEFRAMEBACKWARD   7
34 #define ND_STATE_PRINTSCREEN        8
35
36 #ifndef MACINTOSH
37 #define DEMO_DIR                "demos/"
38 #else
39 #define DEMO_DIR                ":Demos:"
40 #endif
41
42 // Gives state of recorder
43 extern int Newdemo_state;
44 extern int NewdemoFrameCount;
45 extern int Newdemo_game_mode;
46
47 extern int Newdemo_vcr_state;
48 extern sbyte Newdemo_do_interpolate;
49
50 //Does demo start automatically?
51 extern int Auto_demo;
52
53 // Functions called during recording process...
54 extern void newdemo_record_start_demo(void);
55 extern void newdemo_record_start_frame(int frame_number, fix frame_time );
56 extern void newdemo_record_render_object(object * obj);
57 extern void newdemo_record_viewer_object(object * obj);
58 extern void newdemo_record_sound_3d( int soundno, int angle, int volume );
59 extern void newdemo_record_sound_3d_once( int soundno, int angle, int volume );
60 extern void newdemo_record_sound_once( int soundno );
61 extern void newdemo_record_sound( int soundno );
62 extern void newdemo_record_wall_hit_process( int segnum, int side, int damage, int playernum );
63 extern void newdemo_record_trigger( int segnum, int side, int objnum,int shot );
64 extern void newdemo_record_hostage_rescued( int hostage_num );
65 extern void newdemo_record_morph_frame(morph_data *md);
66 extern void newdemo_record_player_stats(int shields, int energy, int score );
67 extern void newdemo_record_player_afterburner(fix old_afterburner, fix afterburner);
68 extern void newdemo_record_wall_toggle(int segnum, int side );
69 extern void newdemo_record_control_center_destroyed(void);
70 extern void newdemo_record_hud_message(char *s);
71 extern void newdemo_record_palette_effect(short r, short g, short b);
72 extern void newdemo_record_player_energy(int, int);
73 extern void newdemo_record_player_shields(int, int);
74 extern void newdemo_record_player_flags(uint, uint);
75 extern void newdemo_record_player_weapon(int, int);
76 extern void newdemo_record_effect_blowup(short, int, vms_vector *);
77 extern void newdemo_record_homing_distance(fix);
78 extern void newdemo_record_letterbox(void);
79 extern void newdemo_record_rearview(void);
80 extern void newdemo_record_restore_cockpit(void);
81 extern void newdemo_record_wall_set_tmap_num1(short seg,ubyte side,short cseg,ubyte cside,short tmap);
82 extern void newdemo_record_wall_set_tmap_num2(short seg,ubyte side,short cseg,ubyte cside,short tmap);
83 extern void newdemo_record_multi_cloak(int pnum);
84 extern void newdemo_record_multi_decloak(int pnum);
85 extern void newdemo_set_new_level(int level_num);
86 extern void newdemo_record_restore_rearview(void);
87
88 extern void newdemo_record_multi_death(int pnum);
89 extern void newdemo_record_multi_kill(int pnum, sbyte kill);
90 extern void newdemo_record_multi_connect(int pnum, int new_player, char *new_callsign);
91 extern void newdemo_record_multi_reconnect(int pnum);
92 extern void newdemo_record_multi_disconnect(int pnum);
93 extern void newdemo_record_player_score(int score);
94 extern void newdemo_record_multi_score(int pnum, int score);
95 extern void newdemo_record_primary_ammo(int old_ammo, int new_ammo);
96 extern void newdemo_record_secondary_ammo(int old_ammo, int new_ammo);
97 extern void newdemo_record_door_opening(int segnum, int side);
98 extern void newdemo_record_laser_level(sbyte old_level, sbyte new_level);
99 extern void newdemo_record_cloaking_wall(int front_wall_num, int back_wall_num, ubyte type, ubyte state, fix cloak_value, fix l0, fix l1, fix l2, fix l3);
100 extern void newdemo_record_secret_exit_blown(int truth);
101
102
103 // Functions called during playback process...
104 extern void newdemo_object_move_all(void);
105 extern void newdemo_playback_one_frame(void);
106 extern void newdemo_goto_end(void);
107 extern void newdemo_goto_beginning(void);
108
109 // Interactive functions to control playback/record;
110 extern void newdemo_start_playback( char * filename );
111 extern void newdemo_stop_playback(void);
112 extern void newdemo_start_recording(void);
113 extern void newdemo_stop_recording(void);
114
115 extern int newdemo_get_percent_done(void);
116
117 extern void newdemo_record_link_sound_to_object3( int soundno, short objnum, fix max_volume, fix  max_distance, int loop_start, int loop_end );
118 extern int newdemo_find_object( int signature );
119 extern void newdemo_record_kill_sound_linked_to_object( int objnum );
120
121 #endif // NEWDEMO
122
123 #endif // _NEWDEMO_H