/
object.cpp
3742 lines (3246 loc) · 91.6 KB
/
object.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* $Logfile: /DescentIII/main/object.cpp $
* $Revision: 315 $
* $Date: 3/20/00 12:18p $
* $Author: Matt $
*
* Object management functions
*
* $Log: /DescentIII/main/object.cpp $
*
* 315 3/20/00 12:18p Matt
* Merge of Duane's post-1.3 changes.
* Memset ai_frame to zeros after malloc.
*
* 314 1/26/00 9:20p Jeff
* added support for IntelliVIBE DLL
*
* 313 10/25/99 9:52a Matt
* Undid a Mac change (Duane says it's ok)
*
* 312 10/23/99 12:51a Matt
* Fixed compile warning
*
* 311 10/22/99 10:44p Jeff
* mac merge bug fix
*
* 310 10/22/99 3:43p Matt
* Mac merge
*
* 309 10/20/99 5:40p Chris
* Added the Red Guidebot
*
* 308 10/08/99 4:24p 3dsmax
* some ambient sound fix done by MattT
*
* 307 9/18/99 9:24p Jeff
* object position history code (needed for motion blur effect)
*
* 306 5/22/99 1:54a Matt
* Got rid of debug code mistakenly checked in.
*
* 305 5/21/99 3:43a Matt
*
* 304 5/20/99 9:03p Matt
* Changed trigger system so that collisions with rendered portals don't
* set off triggers on the portals.
*
* 303 5/20/99 3:00p Jason
* added support for negative respawn scalars
*
* 302 5/13/99 7:18p Jeff
* fixed unattach bug in delete dead
*
* 301 5/10/99 8:29p Jason
* robots no longer burn on terrain that causes damage
*
* 300 5/08/99 4:12p Chris
* Added AI hearing noises... version 1
*
* 299 5/06/99 12:52p Jason
* fixed set on fire bug
*
* 298 5/05/99 5:18p Jason
* Invul generic objects don't burn on damaging terrain
*
* 297 5/05/99 5:10a Matt
* Fixed a bug with dying & animating objects.
*
* 296 4/29/99 4:50p Chris
* Fixed matcen and Osiris created objects so thier ambient sounds play
*
* 295 4/29/99 3:09p Jason
* fixed a potential bug with object deaths
*
* 294 4/27/99 10:25p Jason
* slowed down afterburner outside just a bit
*
* 293 4/27/99 9:13a Matt
* When clearing a room's secret flag, clear the flag from all the
* connected rooms.
*
* 292 4/26/99 2:30p Jason
* fixed bug with secret messages
*
* 291 4/26/99 2:28p Jason
* added persistant hud messages
*
* 290 4/25/99 5:20p Jason
* fixed some more coop bugs
*
* 289 4/24/99 2:00p Chris
* Removed the slow terrain cell verify check from ObjMoveOne when Del+Y
* is in effect
*
* 288 4/23/99 7:18p Jason
* fixed some multiplayer issues with observer mode
*
* 287 4/22/99 7:13p Jeff
* fixed bug deleting ghost object in multiplayer
*
* 286 4/22/99 4:19p Chris
* Checked in with the extended DEL+Y terrain node check stuff
*
* 285 4/21/99 3:01p Matt
* Added a new type for dying objects that have AI, instead of keeping a
* flag in the dying info.
*
* 284 4/21/99 11:05a Kevin
* new ps_rand and ps_srand to replace rand & srand
*
* 283 4/20/99 12:24p Matt
* Re-revised the ObjInit() system. ObjInit() again does all the
* initialization stuff, but now it's passed a lot more information so
* those fields can be set before the rest of the initialization takes
* place.
*
* 282 4/18/99 8:13p Chris
* Fixed the floating flare problems (where windows where broken out and
* the flare remained)
*
* 281 4/18/99 5:33p Jason
* fixed object multiplayer problem
*
* 280 4/16/99 12:33a Matt
* Disable Soar on non-Windows systems.
*
* 279 4/15/99 1:41a Jeff
* changes for linux compile
*
* 278 4/14/99 3:56a Jeff
* fixed case mismatch in #includes
*
* 277 4/12/99 6:15p Samir
* Sound priorities pass 1
*
* 276 4/12/99 8:18a Chris
*
* 275 4/12/99 8:12a Chris
*
* 274 4/12/99 8:06a Chris
* Added an ASSERT to check init code that doesn't call
* ComputeDefaultSize() for polygon objects
*
* 273 4/10/99 5:56p Matt
* Cleaned up object initialization code, including create object & load
* object.
*
* 272 4/09/99 12:06p Jason
* made model setup code faster
*
* 271 4/05/99 10:54a Matt
* Added auto-waypoint system
*
* 270 4/03/99 4:24p Jason
* sped up attached vis effects by a large amount
*
* 269 3/28/99 5:56p Matt
* Added sparking effect for objects
*
* 268 3/16/99 9:01a Kevin
* Fixed generic check to also check for doors.
*
* 267 3/12/99 7:47p Jeff
* only call applydamagetogeneric for generic objects
*
* 266 3/04/99 6:12p Jason
* fixed bug with terrain LOD
*
* 265 3/01/99 8:34p Matt
* Made room damage system set the player on fire instead of applying
* damage directly. This system still needs work, but is ok for now.
*
* 264 3/01/99 6:27p Matt
* Cleaned up handling of the outside-mine flag
*
* 263 3/01/99 3:15p Jason
* fixed multiplayer object deletion bug
*
* 262 2/28/99 6:36p Kevin
* More progress on load/save
*
* 261 2/27/99 5:40p Jason
* fixed bug where clients weren't getting remove messages for timed out
* powerups
*
* 260 2/25/99 11:01a Matt
* Added new explosion system.
*
* 259 2/25/99 10:29a Jason
* fixed powerup stalling bug in netgames
*
* 258 2/24/99 1:02p Jason
* various fixes for multiplayer
*
* 257 2/23/99 7:35p Jeff
* removed assert/return in unghost if the item is in a player's inventory
* (needs to be called when sending over objects in a multiplayer game,
* causes an assert)
*
* 256 2/23/99 5:13p Kevin
* Fixed it so objects with lightmaps will retain their lightmaps when a
* game is saved & loaded.
*
* 255 2/23/99 12:39p Jason
* added more options for generic objects
*
* 254 2/22/99 3:26a Matt
* Deleted obsolete code
*
* 253 2/22/99 1:20a Jeff
* added support for inventory (simple) in dallas. Moved end-level
* sequence to use IGC. Add position clipboard stuff for dallas. Fixed
* some inventory bug with storing object handles
*
* 252 2/21/99 4:31p Chris
* Improving the level goal system... Not done.
*
* 251 2/21/99 4:20p Matt
* Added SoundSource objects (and reformatted parts of the object header
* files).
*
* 250 2/19/99 5:16p Chris
* Added the child died event
*
* 249 2/15/99 11:22a Jason
* took out client-side prediction
*
* 248 2/13/99 12:36a Jeff
* new object flag. set for when an object is currently in a player's
* inventory
*
* 247 2/12/99 5:59p Jason
* more permissable server stuff
*
* 246 2/12/99 3:38p Jason
* added client side interpolation
*
* 245 2/10/99 2:49p Matt
* Renamed OBJECT_HANDLE_INVALID to OBJECT_HANDLE_BAD
*
* 244 2/10/99 1:47p Matt
* Changed object handle symbolic constants
*
* 243 2/08/99 5:25p Jeff
* removed all calls to MultiSendRemoveObject, incorportated into
* SetObjectDeadFlag. Fixes sequencing issues in multiplayer
*
* 242 2/07/99 1:20a Jeff
* added new multiplayer game events EVT_GAMEOBJKILLED and
* EVT_GAMEOBJDESTROYED
*
* 241 2/05/99 1:27p Matt
* Only do cycled animations for generic objects
*
* 240 2/03/99 6:32p Jason
* more changes for world states
*
* 239 2/03/99 5:49p Matt
* Added room damage system
*
* 238 2/02/99 8:43a Chris
* I made buildings with AI work correctly (ie really big robots should be
* buildings)
* anim to and from states are now shorts instead of bytes
*
* 237 2/01/99 4:17p Jason
* more changes for multisafe
*
* 236 1/31/99 7:26p Matt
* Renamed a bunch of functions to have HUD capitalized
*
* 235 1/29/99 5:22p Jeff
* localization
*
* 234 1/27/99 6:48p Jeff
* better error handling for ghost/unghost (release build)
*
* 233 1/24/99 1:24a Jason
* fixed chase camera being deleted wrong
*
* 232 1/23/99 2:49p Kevin
* Fixed player movement masking
*
* 231 1/22/99 8:53p Jeff
* added custom-default script overrides
*
* 230 1/22/99 7:12p Jason
* changed terrain speed
*
* 229 1/22/99 4:23p Jason
* sped up afterburner temporarily
*
* 228 1/21/99 11:15p Jeff
* pulled out some structs and defines from header files and moved them
* into seperate header files so that multiplayer dlls don't require major
* game headers, just those new headers. Side effect is a shorter build
* time. Also cleaned up some header file #includes that weren't needed.
* This affected polymodel.h, object.h, player.h, vecmat.h, room.h,
* manage.h and multi.h
*
* 227 1/21/99 6:50p Jason
* added test impact mortar
*
* 226 1/21/99 3:34p Jason
* added liquid code
*
* 225 1/20/99 8:06p Jeff
* added members into DLLinfo struct for game change segment events, pass
* them over on execute dll packets
*
* 224 1/20/99 2:13a Chris
* It is now possible for robots to have special immunities, resistances,
* and vunerabilities
*
* 223 1/19/99 4:22p Matt
* Added the ability for objects to have their own lighting info,
* different from the default lighting for that type of object.
*
* 222 1/19/99 9:20a Kevin
* Added afterburner masking
*
* 221 1/18/99 6:18p Kevin
* Added controller masking to DALLAS
*
* 220 1/18/99 2:46p Matt
* Combined flags & flags2 fields in object struct
*
* 219 1/18/99 12:01a Jeff
* fixed EVT_GAMEPLAYERCHANGESEG event (would only get called if the
* server changed seg) and added EVT_GAMEOBJCHANGESEG
*
* 218 1/15/99 7:52p Chris
* Updated ObjSetPos() to include a f_update_attach_children flag
*
* 217 1/15/99 2:53p Jason
* fixed multiplayer ping bug
*
* 216 1/13/99 6:31p Jason
* added punch to the afterburner
*
* 215 1/13/99 2:27p Jeff
* added an is_dying flag for evt_destroy to determine whether the event
* is due to level end or because it really is dying
*
* 214 1/12/99 11:44p Jason
* Fixed bug with accelerated ping objects
*
* 213 1/08/99 2:56p Samir
* Ripped out OSIRIS1.
*
* 212 1/06/99 7:02p Jeff
* added a multiplayer event for game controls
*
* 211 1/05/99 5:09p Jason
* added permissable server networking (ala Quake/Unreal) to Descent3
*
* 210 12/31/98 7:35p Jeff
* don't allow players to be Ghosted (turned into OBJ_DUMMY). Also, for
* ObjDelete[Dead] unghost a ghosted object before killing it
*
* 209 12/30/98 12:31p Jeff
* when freeing object scripts, the type is changed before it's freed in
* ObjDelete. Also, when destroyed, OBJ_ROBOT becomes OBJ_DEBRIS and
* Osiris was not handling this.
*
* 208 12/28/98 10:16a Jason
* fixed code that was causing some weapons to disappear
*
* 207 12/21/98 11:30p Matt
* Added names for objects
*
* 206 12/17/98 12:08p Jeff
* first checkin of new implementation of OSIRIS (old OSIRIS no longer
* works)
*
* 205 12/10/98 7:09p Jason
* added cloak fade
*
* 204 12/08/98 4:27p Chris
* Removed MT_WALKING hack
*
* 203 12/01/98 3:35p Matt
* Got rear view working.
*
* 202 12/01/98 3:15p Jason
* play refueling sound in 3d for multiplayer
*
* 201 11/17/98 4:16p Kevin
* Demo recording system
*
* 200 11/13/98 4:25p Jason
* changes for better weapon effects
*
* 199 11/13/98 2:27p Samir
* took out music code.
*
* 198 11/11/98 2:46p Kevin
* Demo recording system work
*
* 197 11/10/98 4:48p Jason
* sped up afterburner recharge time
*
* 196 11/10/98 11:16a Jason
* fixed some multiplayer bugs with powerups disappearing
*
*
* 195 11/06/98 11:05a Kevin
* Added code for demo play back
*
* 194 11/02/98 6:49p Jason
* fixed ifdef release problem
*
* 193 11/02/98 4:04p Luke
* Temp. disabled walkers inside
*
* 192 10/30/98 4:24p Jason
* changes for multiplayer
*
* 191 10/29/98 5:20p Chris
* Player ships collide smaller now
*
* 190 10/28/98 11:51a Jason
* fixed some multiplayer problems, plus redid coop a bit to make it
* cleaner
*
* 189 10/21/98 12:13p Jason
* took out guided in multi
*
* 188 10/20/98 5:47p Kevin
* Gunboy and other fixes
*
* 187 10/20/98 1:19p Jason
* fixed afterburner and Of2_SERVER_OBJECT bug
*
* 186 10/20/98 10:50a Sean
*
* 185 10/19/98 11:46p Jason
* changes for multiplayer debug layer
*
* 184 10/19/98 10:45p Jason
* toned down afterburner outside
*
* 183 10/19/98 7:51p Kevin
* performance testing
*
* 182 10/19/98 7:18p Matt
* Added system to support different types of damage to the player and
* have these different types make different sounds.
*
* 181 10/19/98 1:21p Jason
* made afterburner faster
*
* 180 10/18/98 11:07p Matt
* Made ClearTransientObjects() work.
*
* 179 10/17/98 5:50p Jeff
* hooked in rtperformance (run time performance) library
*
* 178 10/16/98 4:18p Chris
* Fixed the 'flare thing'
*
* 177 10/16/98 3:39p Chris
* Improved the object linking system and AI and physics
*
* 176 10/15/98 8:47a Matt
* Changed _DEBUG/RELEASE inconsistancy with slew
*
* 175 10/14/98 1:02p Jason
* fixed FindSoundName issues
*
* 174 10/14/98 12:43a Matt
* Fixed error handling for when an object can't be initialized.
*
* 173 10/13/98 1:08p Chris
* Greatly improved the AI's use of paths. Improved visability checking
* algorithm. Probably needs a second pass for further cleanup.
*
* 172 10/11/98 10:53p Matt
* Fixed some zero-length malloc()s
*
* 171 10/11/98 2:39p Matt
* If ObjInit() fails, ObjCreate() now returns an error.
*
* 170 10/08/98 4:23p Kevin
* Changed code to comply with memory library usage. Always use mem_malloc
* , mem_free and mem_strdup
*
* 169 10/06/98 5:46p Kevin
* Added new configuration for demo
*
* 168 10/06/98 2:59p Jason
* added timedemo function
*
* 167 10/06/98 11:27a Jason
* added new death type for robots
*
* 166 10/03/98 8:05p Matt
* Added asserts
*
* 165 9/28/98 6:23p Chris
* Changed multi_anim to custom_anim
*
* 164 9/23/98 2:55p Chris
* Improved auto-leveling and added newbie leveling
*
* 163 9/22/98 6:48p Jason
* fixed dedicated server problems
*
* 162 9/22/98 6:04p Samir
* ifdef DoAI to 1 if in release version.
*
* 161 9/22/98 1:02p Matt
* Don't set previous room info for an object if the object was moved in
* the editor.
*
* 160 9/22/98 12:40p Matt
* Cleaned up the object per-frame processing code.
*
* 159 9/17/98 3:03p Jason
* added lightning and invul hit effects
*
* 158 9/10/98 12:18p Jason
* more changes to afterburner/thrust effect
*
* 157 9/09/98 7:09p Jason
* changed afterburner effect for ships
*
* 156 9/09/98 4:30p Jason
* fixed a remaining (and insidious) bug with gunpoint instancing
*
* 155 8/31/98 6:12p Luke
* Moved the multi turret deletion code to somewhere where I can debug
* things
*
* 154 8/24/98 4:48p Jason
* undid my last rev
*
* 153 8/24/98 2:52p Jason
* fixed instance problem
*
* 152 8/19/98 11:30a Jason
* fixed afterburner problem with low framerates
*
* 151 8/17/98 12:10p Chris
* Fixed MAJOR bug in getting gunpoint positions
*
* 150 8/14/98 6:21p Chris
* Added another safety check for docycledanim
*
* 149 8/12/98 6:37p Jeff
* added functions to ghost an object (make it's type to OBJ_DUMMY) and
* unghost
*
* 148 8/12/98 12:04p Chris
* Attach system version .5 (still needs more work to be multiplayer
* friendly)
*
* 147 8/07/98 8:25p Chris
* Improved the attach system
*
* 146 8/07/98 6:54p Jeff
* afterburner powerup effect added
*
* 145 8/03/98 4:29p Chris
* Added additional support for the attach system
*
* 144 7/30/98 11:09a Jason
* added weapons that freeze and deform terrain
*
* 143 7/28/98 5:43p Samir
* added room change hook for music system,
*
* 142 7/22/98 3:16p Jason
* added observer mode
*
* 141 7/20/98 10:42a Jason
* added more player scalars, plus afterburner changes
*
* 140 7/16/98 12:51p Mark
* Fixed a potential bug
*
* 139 7/15/98 2:33p Jason
* added scalar variables for various player skills
*
* 138 7/15/98 12:48p Jeff
* put in calls to handle new multiplayer event...when an object's shields
* change
*
* 137 7/14/98 5:52p Kevin
* Packet loss measurements and auto pps adjusting
*
* 136 7/14/98 3:54p Sean
* CHRIS -- Fixed a bug in free'ing multi_turret_info on objects that are
* not polygon models (i.e. they don't have that info and it is union'ed
* to something else so it is not NULL)
*
* 135 7/09/98 7:50p Jeff
* added ObjGetUltimateParent to find out the original parent of an
* object, traces the family tree
*
* 134 7/09/98 3:30p Chris
* Fixed communication problem between systems
*
* 133 7/09/98 11:34a Chris
* Turrets are interpolated.
*
* 132 7/08/98 11:38a Chris
* Improved the turret info passing in multiplayer
*
* 131 7/07/98 3:26p Chris
* Added changes for turret updates
*
* 130 7/02/98 2:47p Chris
* Dynamic weapon info is now dynamically allocated
*
* 129 7/01/98 4:35p Chris
* More multiplayer sync issues
*
* 128 7/01/98 2:02p Chris
* Added the sound for animations
*
* 127 6/30/98 6:36p Chris
* Added rev .1 of multiplayer animations - BTW It is totally not done.
*
* 126 6/30/98 4:28p Chris
* Checked in some missing commas
*
* 125 5/26/98 7:07p Samir
* reset script.is_custom to 1 when calling ObjCreate.
*
* 124 5/22/98 4:45p Chris
* Powerups us the correct anim time
*
* 123 5/19/98 4:42a Chris
* Added shockwave's -- enjoy. :)
*
* 122 5/15/98 5:41p Jason
* implemented volume lighting system
*
* 121 5/11/98 4:40p Chris
* AI info is now a malloc'ed pointer
*
* 120 5/04/98 6:47p Craig
* Rooms cannot cycle through anims
*
* 119 5/04/98 12:30p Matt
* ObjCreate() now takes object id as a ushort
*
* 118 5/04/98 12:28p Matt
* Added shard objects
*
* 117 5/01/98 3:41p Chris
*
* 116 5/31/98 3:08p Chris
* Allowed for death animations
*
* 115 4/27/98 1:14p Jason
* cleaned up afterburner stuff
*
* 114 4/23/98 12:44p Jason
* made AI toggleable to test framerate - this is temporary
*
* 113 4/22/98 4:15p Chris
* Improved DebugBlockPrint
*
* 112 4/22/98 3:50p Chris
* Added DebugBlockPrint
*
* 111 4/22/98 2:10p Matt
* Made FreeAllObjects() free the player object (object 0), since objects
* now contain malloc'd data and must be freed.
*
* 110 4/20/98 6:24p Chris
* Bulletproofing collision code
*
* 109 4/19/98 5:00p Jason
* added cool napalm effect, plus made object effects dynamically
* allocated
*
* 108 4/17/98 1:59p Jason
* added cool object effects
*
* 107 4/16/98 2:56p Chris
* Updated buddy support and intergrated scripting and AI
*
* 106 4/15/98 8:38p Jason
* fixed some multiplayer issues
*
* 105 4/15/98 12:56p Chris
* Updated parent_handle support and added buddy bot support
*
* 104 4/13/98 2:21p Chris
* Fixed some collision problems dealing with AABBs and Polymodel paging
* in.
*
* 103 4/13/98 12:42p Jason
* changed afterburner effect
*
* 102 4/10/98 2:42p Jason
* fixed afterburner blobs to be a stream
*
* 101 4/10/98 2:16p Jason
* fixed guided missile problems
*
* 100 4/09/98 5:18p Jason
* got guided working in multiplayer
*
* 99 4/09/98 3:04p Jason
* temp fix for afterburner running out of fuel
*
* 98 4/09/98 2:23p Jason
* added guided/afterburner stuff
*
* 97 4/07/98 1:12p Jason
* make powerup respawn a variable in multiplayer games
*
* 96 4/03/98 11:04a Jason
* added a multplayer dll hook for when a player changes a room
*
* 95 4/01/98 6:23p Jason
* added a slew of stuff for multiplayer
*
* 94 3/31/98 5:56p Jason
* changes for multiplay
*
* 93 3/31/98 4:23p Chris
* Added a new AIpath system
*
* 92 3/20/98 9:34p Jason
* added SetObjectDeadFlag inlined function
*
* 91 3/13/98 5:55p Chris
* Added the new collision spheres
*
* 90 3/12/98 7:30p Chris
* Added ObjSetOrient
*
* 89 2/25/98 3:01p Jason
* added splinter objects to FreeObjects
*
* 88 2/25/98 2:05p Jason
* did FOV and object visibility changes
*
* 87 2/20/98 1:46p Chris
* JASON: Made dynamic lighting only occur if the object is rendered
*
* 86 2/19/98 11:17a Chris
* Tweaked the BIG_OBJECT system
*
* 85 2/17/98 3:46p Matt
* Revamped weapon system and got sounds for spray and fusion weapons
* working. Still need to implements getting continuous & cutoff sounds
* from player ship.
*
* 84 2/16/98 2:49p Chris
* Made the MAX_SUBOBJECTS determine the number of normalized_time values
* to be processed. No longer a 'literal' problem.
*
* 83 2/13/98 6:59p Chris
* FIxed the normalized_time array from being smaller than the number of
* subobjects. Also update newstyle_fi.cpp
*
* 82 2/12/98 8:48p Matt
* Changed controls system to keep the reading of the controls seperate
* from using the results. Got rid of the Controls global.
*
* 81 2/11/98 2:04p Jason
* got spawning weapons working
*
* 80 2/09/98 3:20p Matt
* Changed assert to allow OBJECT_HANDLE_INVALID to be pased to ObjGet()
*
* 79 2/05/98 3:00p Matt
* Made ObjSetPos() take optional orienation. Got rid of unlink & relink
* funcs from header.
*
* 78 2/04/98 6:09p Matt
* Changed object room number to indicate a terrain cell via a flag. Got
* rid of the object flag which used to indicate terrain.
*
* 77 2/03/98 1:06p Jason
* tidied up some multiplayer loose ends
*
* 76 1/30/98 5:26p Chris
* Allow all non-AI objects to animate
*
* 75 1/29/98 5:49p Matt
* Changed old camera object type to be viewer object (for editor), and
* now camera objects will just be for game cameras.
*
* 74 1/27/98 12:26p Samir
* Added GetObjectPointInWorld.
*
* 73 1/23/98 11:21a Jason
* incremental multiplayer checkin
*
* 72 1/21/98 1:11p Jason
* incremental checkin for multiplayer
*
* 71 1/20/98 6:01p Jason
* first pass at getting multiplayer deaths working
*
* 70 1/20/98 4:12p Samir
* New script housekeeping system.
*
* 69 1/20/98 12:27p Luke
* Added an assert to make sure that we are not linking to an external
* room
*
* 68 1/20/98 12:10p Jason
* implemented vis effect system
*
* 67 1/19/98 2:44p Samir
* Use one script per object and started parameter passing support.
*
* 66 1/19/98 12:38p Jason
* took out mprintf in ObjCreate
*
* 65 1/19/98 10:04a Matt
* Added new object handle system
*
* 64 1/15/98 6:49p Jason
* incremental checkin for multiplayer
*
* 63 12/30/97 5:45p Jason
* added toggleable fog
*
* 62 12/19/97 2:46p Jason
* implemented bitmap paging routines
*
* 61 12/12/97 3:42p Jason
* free all objects on shutdown
*
* 60 12/01/97 9:56a Chris
* Removed FLARE and CNTRL_CENTER types
*
* 59 11/10/97 12:27p Jason
* added objects live mprintf
*
* 58 10/28/97 12:22p Chris
* Added a movement type of walking
*
* 57 10/23/97 5:36p Jason
* added splinter objects (probably temporary)
*
* 56 10/22/97 5:14p Chris
* Allow for non-AI objects to animate
*
* 55 10/20/97 4:46p Jason
* changes for explosions
*
* 54 10/14/97 6:53p Chris
* Added the initial SOAR support
*
* 53 10/08/97 6:35p Samir
* Dying player ships get marked as destroyed. When death sequence is
* over, they are marked as dead. This is needed to better control
* movement of the dying ship.
*
* 52 10/03/97 5:18p Chris
* Added OBJ_LINE as a new type
*
* 51 10/02/97 1:04p Jason
* implemented FreeAllObjects
*
* 50 10/01/97 7:51p Matt
* Added code for external rooms
*
* 49 9/30/97 6:40p Jason
* got lightmap stuff sort of working with objects
*
* 48 9/22/97 6:20p Matt
* Killed include of stub.h, and removed references to stuff that had been
* in stub.h
*
* 47 9/19/97 6:58p Chris
* Fixed some bugs with the big object system and removed some annoying
* mprintf's
*
* 46 9/19/97 1:01p Chris
* Better big object support
*
* 45 9/18/97 1:25p Matt
* Cleaned up code, added the text name for door objects, and other small
* changes.
*
* 44 9/17/97 11:16a Matt
* Ripped out segment code
*
* 43 9/16/97 5:04p Matt
* Changed conditional for debug code
*
* 42 9/15/97 12:42p Samir
* Added include of stdlib.
*
* 41 9/15/97 5:21a Chris
* Added sphere2poly support
*
* 40 9/12/97 6:36p Chris
* Added collision terrain segment support
* Added some LARGE OBJECT collision support
*
* 39 9/12/97 10:12a Matt
* Added trigger check
*
* 38 9/05/97 3:22p Jason
* changes for lit objects
*
* 37 9/05/97 1:29p Jason
* revamped generic object lighting
*
* 36 9/05/97 12:26p Samir
* Player initiates death sequence if killed.
*
* 35 9/04/97 5:26p Jason
* got pulsing objects to work
*
* 34 9/04/97 12:11p Jason
* added flickering generic objects
*
* 33 9/03/97 6:17p Jason
* added code to support powerups/robots/etc that cast light
*
* 32 9/03/97 3:53p Jason
* got objects to cast light
*
* 31 8/25/97 7:32p Chris
*
* 30 8/25/97 6:18p Chris
*
* 29 8/25/97 5:14p Craig
*
* 28 8/25/97 12:41p Chris
* Made sure that all object movements and mine changes result in AABB
* updates.
*
* 27 8/22/97 10:51a Samir
* call destroy script if object is being killed.
*
* 26 8/21/97 7:47p Matt
* ObjSetPos() wasn't relinking the object when the room changed
*
* 25 8/21/97 5:57p Samir
* Added code that kills scripts when object is being deleted.
*
* 24 8/20/97 5:04p Samir
* Added frame interval scripting.
*
* 23 8/18/97 1:45a Chris
* Fix some bugs.
*
* 22 8/12/97 3:56p Matt
* Added new object type: OBJ_BUILDING
*
* 21 8/12/97 1:13p Chris
* Added AABBs.
*
* 20 8/11/97 6:48p Matt
* Rewrote static object remap system
*
* 19 8/11/97 1:53p Matt
* Ripped out robot & powerup pages, and added generic page
*
* 18 8/04/97 5:29p Matt
* Removed some not-to-be-used room code
*
* 17 8/04/97 4:08p Matt
* Added ObjSetPos() that takes the new room number
*
* 16 8/04/97 12:37p Chris
* We now support fvi in Rooms :)
*
* 15 7/29/97 10:27a Jason
* added RenderOBject abstraction layer
*
* 14 7/28/97 1:14p Chris
* Added support for sub-object visability. Plus, debris.
*
* 13 7/16/97 4:09p Jason
* ripped out temporary object lighting
*
*
* 12 7/16/97 3:43p Jason
* took off lighting of objects
*
* 11 7/15/97 5:32p Jason
* got simple static lighting working with objects
*
* 10 7/15/97 4:59p Chris
*
* 9 7/15/97 4:59p Chris
* added support for AI and animations
*
* 50 6/24/97 6:54p Mark
*
* 49 6/24/97 6:07p Matt
* Use DrawPolygonModel() directly, instead of DrawPolygonObject()
*
* 48 6/06/97 4:07p Jason
* verify tmap2 textures if in editor mode