Subversion Repositories nw_plus

Rev

Rev 8 | Rev 14 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8 Rev 9
1
/*
1
/*
2
--------------------------------------------------------------------------------
2
--------------------------------------------------------------------------------
3
Duke: Nuclear Winter
3
Duke: Nuclear Winter
4
By Joris Weimar
4
By Joris Weimar
5
© 1997 Simply Silly Software
5
© 1997 Simply Silly Software
6
--------------------------------------------------------------------------------
6
--------------------------------------------------------------------------------
7
Duke: Nuclear Winter Plus
7
Duke: Nuclear Winter Plus
8
By Hendricks266
8
By Hendricks266
9
--------------------------------------------------------------------------------
9
--------------------------------------------------------------------------------
10
*/
10
*/
11
 
11
 
12
definecheat 14 endepisode
12
definecheat 14 endepisode
13
definecheat 15 endlevel
13
definecheat 15 endlevel
14
definecheat 25 endvolume
14
definecheat 25 endvolume
15
 
15
 
16
include NWDefs.con
16
include NWDefs.con
17
include NWUser.con
17
include NWUser.con
18
 
18
 
19
setgamename Duke: Nuclear Winter
19
setgamename Duke: Nuclear Winter
20
 
20
 
-
 
21
gamevar picnum 0 2
-
 
22
gamevar temp 0 2
-
 
23
gamevar tempb 0 2
-
 
24
gamevar x 0 2
-
 
25
gamevar y 0 2
-
 
26
gamevar z 0 2
-
 
27
 
21
gamevar owner 0 2
28
gamevar owner 0 2
22
gamevar temp2 0 2
29
gamevar temp2 0 2
23
gamevar temp3 0 2
30
gamevar temp3 0 2
24
gamevar temp4 0 2
31
gamevar temp4 0 2
25
gamevar ptemp 0 1
32
gamevar ptemp 0 1
26
gamevar holodukeid 0 1
33
gamevar holodukeid 0 1
27
gamevar musicchange 0 1
34
gamevar musicchange 0 1
28
gamevar skin DUKE 132097 // do not reset flag enabled
35
gamevar skin DUKE 132097 // do not reset flag enabled
29
 
36
 
30
gamevar LOGO_FLAGS 767 0 // default; TEN screen reenabled
37
gamevar LOGO_FLAGS 767 0 // default; TEN screen reenabled
31
 
38
 
32
state cutsceneambience
39
state cutsceneambience
33
  getactor[THISACTOR].lotag temp
40
  getactor[THISACTOR].lotag temp
34
 
41
 
35
  switch temp
42
  switch temp
36
 
43
 
37
    case WIND_AMBIENCE
44
    case WIND_AMBIENCE
38
    case WIND_REPEAT
45
    case WIND_REPEAT
39
     setactor[THISACTOR].lotag WIND2
46
     setactor[THISACTOR].lotag WIND2
40
    break
47
    break
41
 
48
 
42
    case FLY_BY
49
    case FLY_BY
43
     setactor[THISACTOR].lotag FLY_BY2
50
     setactor[THISACTOR].lotag FLY_BY2
44
    break
51
    break
45
 
52
 
46
  endswitch
53
  endswitch
47
ends
54
ends
48
 
55
 
49
onevent EVENT_LOADACTOR
56
onevent EVENT_LOADACTOR
50
  getactor[THISACTOR].picnum picnum
57
  getactor[THISACTOR].picnum picnum
51
  switch picnum
58
  switch picnum
52
 
59
 
53
   case SNOWYDOORSHOCK 
60
   case SNOWYDOORSHOCK 
54
     spritepal 30
61
     spritepal 30
55
     cactor DOORSHOCK
62
     cactor DOORSHOCK
56
   break
63
   break
57
 
64
 
58
   case 3765 case 3766 case 3767 case 3768 cactor WOODENHORSE2 break
65
   case 3765 case 3766 case 3767 case 3768 cactor WOODENHORSE2 break
59
 
66
 
60
  // case PIGCOP case PIGCOPSTAYPUT case PIGCOPDIVE sizeat 48 40 break
67
  // case PIGCOP case PIGCOPSTAYPUT case PIGCOPDIVE sizeat 48 40 break
61
   case SOBBOTWALK case SOBBOTFLY sizeat 42 36 break
68
   case SOBBOTWALK case SOBBOTFLY sizeat 42 36 break
62
   case ELFUZI case ELFUZISTAYPUT sizeat 32 27 break
69
   case ELFUZI case ELFUZISTAYPUT sizeat 32 27 break
63
   case ELFGUN case ELFGUNSTAYPUT sizeat 32 27 break
70
   case ELFGUN case ELFGUNSTAYPUT sizeat 32 27 break
64
   case SNOWMAN sizeat 42 36 break
71
   case SNOWMAN sizeat 42 36 break
65
 
72
 
66
   case 1915
73
   case 1915
67
    cactor COMMANDER // failsafe fix for NWL5 bug
74
    cactor COMMANDER // failsafe fix for NWL5 bug
68
   break
75
   break
69
 
76
 
70
   case MUSICANDSFX
77
   case MUSICANDSFX
71
     state cutsceneambience
78
     state cutsceneambience
72
   break
79
   break
73
 
80
 
74
   case JETPACK
81
   case JETPACK
75
     ifspritepal 21 setvar temp 1
82
     ifspritepal 21 setvar temp 1
76
     spritepal 0
83
     spritepal 0
77
   break
84
   break
78
 
85
 
79
/*
86
/*
80
   case SNOWFLAKE
87
   case SNOWFLAKE
81
     cactor SNOW
88
     cactor SNOW
82
     sizeat 8 8
89
     sizeat 8 8
83
   break
90
   break
84
*/
91
*/
85
 
92
 
86
   case XMASPRESENT
93
   case XMASPRESENT
87
   case XMASPRESENT2
94
   case XMASPRESENT2
88
     getactor[THISACTOR].hitag temp
95
     getactor[THISACTOR].hitag temp
89
     setactor[THISACTOR].hitag 0
96
     setactor[THISACTOR].hitag 0
90
   break
97
   break
91
 
98
 
92
  endswitch
99
  endswitch
93
endevent
100
endevent
94
 
101
 
95
onevent EVENT_EGS
102
onevent EVENT_EGS
96
 ifactor APLAYER setactor[THISACTOR].mdflags 16
103
 ifactor APLAYER setactor[THISACTOR].mdflags 16
97
 ifactor DUKETORSO setactor[THISACTOR].mdflags 16
104
 ifactor DUKETORSO setactor[THISACTOR].mdflags 16
98
 ifactor DUKEGUN setactor[THISACTOR].mdflags 16
105
 ifactor DUKEGUN setactor[THISACTOR].mdflags 16
99
 ifactor DUKELEG setactor[THISACTOR].mdflags 16
106
 ifactor DUKELEG setactor[THISACTOR].mdflags 16
100
 ifactor DOORSHOCK setactor[THISACTOR].mdflags 16
107
 ifactor DOORSHOCK setactor[THISACTOR].mdflags 16
101
 
108
 
102
 ifactor SNOW
109
 ifactor SNOW
103
   {
110
   {
104
     sizeat 8 8
111
     sizeat 8 8
105
 
112
 
106
     setvar temp3 0
113
     setvar temp3 0
107
     randvar temp3 2047
114
     randvar temp3 2047
108
     setactor[THISACTOR].ang temp3
115
     setactor[THISACTOR].ang temp3
109
 
116
 
110
     setvar temp2 -2047
117
     setvar temp2 -2047
111
     randvar temp2 2047
118
     randvar temp2 2047
112
 
119
 
113
/*
120
/*
114
     setvar temp3 0
121
     setvar temp3 0
115
     ifrnd 128 addvar temp3 4
122
     ifrnd 128 addvar temp3 4
116
     ifrnd 128 addvar temp3 8
123
     ifrnd 128 addvar temp3 8
117
     setactor[THISACTOR].cstat temp3
124
     setactor[THISACTOR].cstat temp3
118
*/
125
*/
119
   }
126
   }
120
endevent
127
endevent
121
 
128
 
122
// -----------------------------------------------------------------------------
129
// -----------------------------------------------------------------------------
123
 
130
 
124
state standard_bjibs
131
state standard_bjibs
125
  guts JIBS2 1
132
  guts JIBS2 1
126
  guts JIBS3 2
133
  guts JIBS3 2
127
  guts JIBS4 3
134
  guts JIBS4 3
128
  guts JIBS5 2
135
  guts JIBS5 2
129
  guts JIBS6 3
136
  guts JIBS6 3
130
  ifrnd 6
137
  ifrnd 6
131
  {
138
  {
132
    guts JIBS1 1
139
    guts JIBS1 1
133
  }         // a badly drawn spine
140
  }         // a badly drawn spine
134
ends
141
ends
135
 
142
 
136
state nwbreakobject
143
state nwbreakobject
137
  ifaction 0
144
  ifaction 0
138
  {
145
  {
139
    action ANULLACTION
146
    action ANULLACTION
140
    cstator 257
147
    cstator 257
141
  }
148
  }
142
    ifhitweapon
149
    ifhitweapon
143
    {
150
    {
144
      ifdead
151
      ifdead
145
      {
152
      {
146
        ifactor WOODSLATS
153
        ifactor WOODSLATS
147
        {
154
        {
148
          sound GLASS_HEAVYBREAK
155
          sound GLASS_HEAVYBREAK
149
	  debris SCRAP3 5
156
	  debris SCRAP3 5
150
	  debris SCRAP4 3
157
	  debris SCRAP4 3
151
          killit
158
          killit
152
        }
159
        }
153
      else
160
      else
154
        ifactor RIBBON
161
        ifactor RIBBON
155
        {
162
        {
156
          sound GLASS_HEAVYBREAK
163
          sound GLASS_HEAVYBREAK
157
	  debris SCRAP3 5
164
	  debris SCRAP3 5
158
	  debris SCRAP4 3
165
	  debris SCRAP4 3
159
          killit
166
          killit
160
        }
167
        }
161
      else
168
      else
162
        ifactor MYBOX
169
        ifactor MYBOX
163
        {
170
        {
164
          sound GLASS_HEAVYBREAK
171
          sound GLASS_HEAVYBREAK
165
	  debris SCRAP3 5
172
	  debris SCRAP3 5
166
	  debris SCRAP4 3
173
	  debris SCRAP4 3
167
          killit
174
          killit
168
        }
175
        }
169
      else
176
      else
170
        ifactor SNOWGIB killit
177
        ifactor SNOWGIB killit
171
      else
178
      else
172
        ifactor DRUNKELF
179
        ifactor DRUNKELF
173
        {
180
        {
174
          sound PRED_DYING
181
          sound PRED_DYING
175
          guts JIBS6 2
182
          guts JIBS6 2
176
          guts JIBS6 3
183
          guts JIBS6 3
177
          guts JIBS6 4
184
          guts JIBS6 4
178
          killit
185
          killit
179
        }
186
        }
180
      else
187
      else
181
        ifactor CHOOCHOOSLUT
188
        ifactor CHOOCHOOSLUT
182
        {
189
        {
183
          sound GLASS_HEAVYBREAK
190
          sound GLASS_HEAVYBREAK
184
	  debris SCRAP3 5
191
	  debris SCRAP3 5
185
	  debris SCRAP4 3
192
	  debris SCRAP4 3
186
          killit
193
          killit
187
        }
194
        }
188
      else
195
      else
189
        ifactor HORSEPOWER
196
        ifactor HORSEPOWER
190
        {
197
        {
191
          sound GLASS_HEAVYBREAK
198
          sound GLASS_HEAVYBREAK
192
	  debris SCRAP3 5
199
	  debris SCRAP3 5
193
	  debris SCRAP4 3
200
	  debris SCRAP4 3
194
          killit
201
          killit
195
        }
202
        }
196
      else
203
      else
197
        ifactor CHANDELIER
204
        ifactor CHANDELIER
198
        {
205
        {
199
          sound GLASS_BREAKING
206
          sound GLASS_BREAKING
200
          debris SCRAP3 3
207
          debris SCRAP3 3
201
          debris SCRAP4 4
208
          debris SCRAP4 4
202
          lotsofglass 10
209
          lotsofglass 10
203
          killit
210
          killit
204
        }
211
        }
205
      else
212
      else
206
        ifactor TREEWITHSOMETHING
213
        ifactor TREEWITHSOMETHING
207
        {
214
        {
208
          sound GLASS_HEAVYBREAK
215
          sound GLASS_HEAVYBREAK
209
	  debris SCRAP3 5
216
	  debris SCRAP3 5
210
          ifrnd 96
217
          ifrnd 96
211
          {
218
          {
212
            ifrnd 64 spawn ATOMICHEALTH else spawn SHIELD
219
            ifrnd 64 spawn ATOMICHEALTH else spawn SHIELD
213
          }
220
          }
214
          else
221
          else
215
          {
222
          {
216
            ifrnd 128 spawn STEROIDS else spawn FECES
223
            ifrnd 128 spawn STEROIDS else spawn FECES
217
          }
224
          }
218
          killit
225
          killit
219
        }
226
        }
220
      else
227
      else
221
        ifactor SSPEAKER
228
        ifactor SSPEAKER
222
        {
229
        {
223
	  debris SCRAP4 3
230
	  debris SCRAP4 3
224
          killit
231
          killit
225
        }
232
        }
226
      }
233
      }
227
    }
234
    }
228
ends
235
ends
229
 
236
 
230
useractor notenemy WOODSLATS MEDIUMSTRENGTH state nwbreakobject enda
237
useractor notenemy WOODSLATS MEDIUMSTRENGTH state nwbreakobject enda
231
 
238
 
232
useractor notenemy RIBBON WEAK state nwbreakobject enda
239
useractor notenemy RIBBON WEAK state nwbreakobject enda
233
 
240
 
234
useractor notenemy SSPEAKER WEAK state nwbreakobject enda
241
useractor notenemy SSPEAKER WEAK state nwbreakobject enda
235
 
242
 
236
useractor notenemy MYBOX WEAK state nwbreakobject enda
243
useractor notenemy MYBOX WEAK state nwbreakobject enda
237
 
244
 
238
useractor notenemy DRUNKELF WEAK state nwbreakobject enda
245
useractor notenemy DRUNKELF WEAK state nwbreakobject enda
239
 
246
 
240
useractor notenemy CHOOCHOOSLUT WEAK state nwbreakobject enda
247
useractor notenemy CHOOCHOOSLUT WEAK state nwbreakobject enda
241
 
248
 
242
useractor notenemy HORSEPOWER WEAK state nwbreakobject enda
249
useractor notenemy HORSEPOWER WEAK state nwbreakobject enda
243
 
250
 
244
useractor notenemy SNOWGIB WEAK state nwbreakobject enda
251
useractor notenemy SNOWGIB WEAK state nwbreakobject enda
245
 
252
 
246
useractor notenemy CHANDELIER WEAK state nwbreakobject enda
253
useractor notenemy CHANDELIER WEAK state nwbreakobject enda
247
 
254
 
248
useractor notenemy TREEWITHSOMETHING TOUGH state nwbreakobject enda
255
useractor notenemy TREEWITHSOMETHING TOUGH state nwbreakobject enda
249
 
256
 
250
actor JETPACK
257
actor JETPACK
251
  fall
258
  fall
252
  ifmove RESPAWN_ACTOR_FLAG
259
  ifmove RESPAWN_ACTOR_FLAG
253
    state respawnit
260
    state respawnit
254
  else
261
  else
255
    ifp pshrunk nullop
262
    ifp pshrunk nullop
256
    else
263
    else
257
      ifp palive
264
      ifp palive
258
        ifpdistl RETRIEVEDISTANCE
265
        ifpdistl RETRIEVEDISTANCE
259
          ifcount 6
266
          ifcount 6
260
            ifpinventory GET_JETPACK JETPACK_AMOUNT
267
            ifpinventory GET_JETPACK JETPACK_AMOUNT
261
              ifcanseetarget
268
              ifcanseetarget
262
      {
269
      {
263
        ifvare temp 1
270
        ifvare temp 1
264
        {
271
        {
265
          addinventory GET_JETPACK JETPACK_NEAR_EMPTY
272
          addinventory GET_JETPACK JETPACK_NEAR_EMPTY
266
          quote 125
273
          quote 125
267
        }
274
        }
268
        else
275
        else
269
        {
276
        {
270
          addinventory GET_JETPACK JETPACK_AMOUNT
277
          addinventory GET_JETPACK JETPACK_AMOUNT
271
          quote 41
278
          quote 41
272
        }
279
        }
273
        ifspawnedby JETPACK
280
        ifspawnedby JETPACK
274
          state getcode
281
          state getcode
275
        else
282
        else
276
          state quikget
283
          state quikget
277
      }
284
      }
278
enda
285
enda
279
 
286
 
280
action FEMHDANCE1 205 1 1 1 16
287
action FEMHDANCE1 205 1 1 1 16
281
action FEMHDANCE3 205 1 1 1 26
288
action FEMHDANCE3 205 1 1 1 26
282
action FEMHDANCE2 206 2 1 1 10
289
action FEMHDANCE2 206 2 1 1 10
283
 
290
 
284
 
291
 
285
 
292
 
286
state nwbabecode
293
state nwbabecode
287
 getactor[THISACTOR].cstat temp
294
 getactor[THISACTOR].cstat temp
288
 ifvarand temp 1 nullop else addvar temp 1
295
 ifvarand temp 1 nullop else addvar temp 1
289
 ifactor HALFBITCH { ifvarand temp 128 nullop else addvar temp 128 }
296
 ifactor HALFBITCH { ifvarand temp 128 nullop else addvar temp 128 }
290
 ifvarand temp 256 nullop else addvar temp 256
297
 ifvarand temp 256 nullop else addvar temp 256
291
 
298
 
292
 getuserdef .lockout temp2
299
 getuserdef .lockout temp2
293
 ifvare temp2 1
300
 ifvare temp2 1
294
   {
301
   {
295
     ifvarand temp 32768 nullop else addvar temp 32768
302
     ifvarand temp 32768 nullop else addvar temp 32768
296
   }
303
   }
297
 else
304
 else
298
  // {
305
  // {
299
     ifvarand temp 32768 subvar temp 32768
306
     ifvarand temp 32768 subvar temp 32768
300
  // }
307
  // }
301
 
308
 
302
 setactor[THISACTOR].cstat temp
309
 setactor[THISACTOR].cstat temp
303
 
310
 
304
 
311
 
305
 
312
 
306
  ifactor HALFBITCH nullop else fall
313
  ifactor HALFBITCH nullop else fall
307
 
314
 
308
  ifaction FEMSHRUNK
315
  ifaction FEMSHRUNK
309
  {
316
  {
310
    ifcount SHRUNKDONECOUNT
317
    ifcount SHRUNKDONECOUNT
311
    {
318
    {
312
      action FEMANIMATE
319
      action FEMANIMATE
313
      cstat 257
320
      cstat 257
314
    }
321
    }
315
    else
322
    else
316
      ifcount SHRUNKCOUNT
323
      ifcount SHRUNKCOUNT
317
        sizeto 40 40
324
        sizeto 40 40
318
    else
325
    else
319
      state genericshrunkcode
326
      state genericshrunkcode
320
  }
327
  }
321
  else ifaction FEMGROW
328
  else ifaction FEMGROW
322
  {
329
  {
323
    ifcount 32
330
    ifcount 32
324
    {
331
    {
325
      respawnhitag
332
      respawnhitag
326
      guts JIBS4 20
333
      guts JIBS4 20
327
      guts JIBS6 20
334
      guts JIBS6 20
328
      spritepal 6
335
      spritepal 6
329
      soundonce LADY_SCREAM
336
      soundonce LADY_SCREAM
330
      ifactor SLUTASS debris SCRAP6 1
337
      ifactor SLUTASS debris SCRAP6 1
331
      sound SQUISH2
338
      sound SQUISH2
332
      killit
339
      killit
333
    }
340
    }
334
    else
341
    else
335
      sizeto MAXXSTRETCH MAXYSTRETCH
342
      sizeto MAXXSTRETCH MAXYSTRETCH
336
  }
343
  }
337
 
344
 
338
 
345
 
339
  else
346
  else
340
    ifaction FEMHDANCE1
347
    ifaction FEMHDANCE1
341
  {
348
  {
342
    ifactioncount 2
349
    ifactioncount 2
343
      action FEMHDANCE2
350
      action FEMHDANCE2
344
  }
351
  }
345
  else
352
  else
346
    ifaction FEMHDANCE2
353
    ifaction FEMHDANCE2
347
  {
354
  {
348
    ifactioncount 8
355
    ifactioncount 8
349
      action FEMHDANCE3
356
      action FEMHDANCE3
350
  }
357
  }
351
  else
358
  else
352
    ifaction FEMHDANCE3
359
    ifaction FEMHDANCE3
353
  {
360
  {
354
    ifactioncount 2
361
    ifactioncount 2
355
    action FEMANIMATE
362
    action FEMANIMATE
356
  }
363
  }
357
  else
364
  else
358
    ifaction FEMFROZEN1
365
    ifaction FEMFROZEN1
359
  {
366
  {
360
    ifcount THAWTIME
367
    ifcount THAWTIME
361
    {
368
    {
362
      action FEMANIMATE
369
      action FEMANIMATE
363
      getlastpal
370
      getlastpal
364
    }
371
    }
365
    else
372
    else
366
      ifcount FROZENDRIPTIME
373
      ifcount FROZENDRIPTIME
367
    {
374
    {
368
      ifactioncount 26
375
      ifactioncount 26
369
      {
376
      {
370
        spawn WATERDRIP
377
        spawn WATERDRIP
371
        resetactioncount
378
        resetactioncount
372
      }
379
      }
373
    }
380
    }
374
 
381
 
375
    ifhitweapon
382
    ifhitweapon
376
    {
383
    {
377
      ifwasweapon FREEZEBLAST
384
      ifwasweapon FREEZEBLAST
378
      {
385
      {
379
        strength 0
386
        strength 0
380
        break
387
        break
381
      }
388
      }
382
      lotsofglass 30
389
      lotsofglass 30
383
      sound GLASS_BREAKING
390
      sound GLASS_BREAKING
384
      respawnhitag
391
      respawnhitag
385
      ifrnd 84
392
      ifrnd 84
386
        spawn BLOODPOOL
393
        spawn BLOODPOOL
387
      killit
394
      killit
388
    }
395
    }
389
    else
396
    else
390
      ifp pfacing
397
      ifp pfacing
391
        ifpdistl FROZENQUICKKICKDIST
398
        ifpdistl FROZENQUICKKICKDIST
392
          pkick
399
          pkick
393
    break
400
    break
394
  }
401
  }
395
  else ifaction FEMFROZEN2
402
  else ifaction FEMFROZEN2
396
  {
403
  {
397
    ifcount THAWTIME
404
    ifcount THAWTIME
398
    {
405
    {
399
      action FEMANIMATE
406
      action FEMANIMATE
400
      getlastpal
407
      getlastpal
401
    }
408
    }
402
    else
409
    else
403
      ifcount FROZENDRIPTIME
410
      ifcount FROZENDRIPTIME
404
    {
411
    {
405
      ifactioncount 26
412
      ifactioncount 26
406
      {
413
      {
407
        spawn WATERDRIP
414
        spawn WATERDRIP
408
        resetactioncount
415
        resetactioncount
409
      }
416
      }
410
    }
417
    }
411
 
418
 
412
    ifhitweapon
419
    ifhitweapon
413
    {
420
    {
414
      ifwasweapon FREEZEBLAST
421
      ifwasweapon FREEZEBLAST
415
      {
422
      {
416
        strength 0
423
        strength 0
417
          break
424
          break
418
      }
425
      }
419
 
426
 
420
      lotsofglass 30
427
      lotsofglass 30
421
 
428
 
422
      sound GLASS_BREAKING
429
      sound GLASS_BREAKING
423
      ifrnd 84
430
      ifrnd 84
424
        spawn BLOODPOOL
431
        spawn BLOODPOOL
425
      respawnhitag
432
      respawnhitag
426
 
433
 
427
      ifrnd 128
434
      ifrnd 128
428
        sound DUKE_HIT_STRIPPER1
435
        sound DUKE_HIT_STRIPPER1
429
      else
436
      else
430
        sound DUKE_HIT_STRIPPER2
437
        sound DUKE_HIT_STRIPPER2
431
 
438
 
432
      killit
439
      killit
433
    }
440
    }
434
    else
441
    else
435
      ifp pfacing
442
      ifp pfacing
436
        ifpdistl FROZENQUICKKICKDIST
443
        ifpdistl FROZENQUICKKICKDIST
437
          pkick
444
          pkick
438
    break
445
    break
439
  }
446
  }
440
 
447
 
441
  ifhitweapon
448
  ifhitweapon
442
  {
449
  {
443
    ifdead
450
    ifdead
444
    {
451
    {
445
      ifwasweapon GROWSPARK
452
      ifwasweapon GROWSPARK
446
      {
453
      {
447
        cstat 0
454
        cstat 0
448
        move 0
455
        move 0
449
        sound ACTOR_GROWING
456
        sound ACTOR_GROWING
450
        action FEMGROW
457
        action FEMGROW
451
        break
458
        break
452
      }
459
      }
453
      else ifwasweapon FREEZEBLAST
460
      else ifwasweapon FREEZEBLAST
454
      {
461
      {
455
        ifaction FEMSHRUNK
462
        ifaction FEMSHRUNK
456
          break
463
          break
457
 
464
 
458
          action FEMFROZEN1
465
          action FEMFROZEN1
459
 
466
 
460
        move 0
467
        move 0
461
        spritepal 1
468
        spritepal 1
462
        strength 0
469
        strength 0
463
 
470
 
464
        sound SOMETHINGFROZE
471
        sound SOMETHINGFROZE
465
 
472
 
466
        break
473
        break
467
      }
474
      }
468
 
475
 
469
      ifrnd 128
476
      ifrnd 128
470
        sound DUKE_HIT_STRIPPER1
477
        sound DUKE_HIT_STRIPPER1
471
      else
478
      else
472
        sound DUKE_HIT_STRIPPER2
479
        sound DUKE_HIT_STRIPPER2
473
 
480
 
474
      respawnhitag
481
      respawnhitag
475
      state standard_bjibs
482
      state standard_bjibs
476
      state random_wall_jibs
483
      state random_wall_jibs
477
      spawn BLOODPOOL
484
      spawn BLOODPOOL
478
 
485
 
479
        ifactor HALFBITCH
486
        ifactor HALFBITCH
480
          money 3
487
          money 3
481
      else
488
      else
482
        ifactor SLUTASS
489
        ifactor SLUTASS
483
          money 3
490
          money 3
484
 
491
 
485
 
492
 
486
        spritepal 6
493
        spritepal 6
487
        soundonce LADY_SCREAM
494
        soundonce LADY_SCREAM
488
        ifactor NAKED1
495
        ifactor NAKED1
489
	  debris SCRAP3 18
496
	  debris SCRAP3 18
490
        else
497
        else
491
          ifactor PODFEM1
498
          ifactor PODFEM1
492
	    debris SCRAP3 18
499
	    debris SCRAP3 18
493
        killit
500
        killit
494
    }
501
    }
495
    else
502
    else
496
    {
503
    {
497
      ifwasweapon SHRINKSPARK
504
      ifwasweapon SHRINKSPARK
498
      {
505
      {
499
        sound ACTOR_SHRINKING
506
        sound ACTOR_SHRINKING
500
        move 0
507
        move 0
501
        action FEMSHRUNK
508
        action FEMSHRUNK
502
        cstat 0
509
        cstat 0
503
        break
510
        break
504
      }
511
      }
505
      else
512
      else
506
        ifwasweapon GROWSPARK
513
        ifwasweapon GROWSPARK
507
          sound EXPANDERHIT
514
          sound EXPANDERHIT
508
 
515
 
509
 
516
 
510
      sound SQUISH2
517
      sound SQUISH2
511
 
518
 
512
      guts JIBS6 1
519
      guts JIBS6 1
513
    }
520
    }
514
  }
521
  }
515
 
522
 
516
 
523
 
517
 
524
 
518
  ifp pfacing
525
  ifp pfacing
519
    ifpdistl 1280
526
    ifpdistl 1280
520
      ifhitspace
527
      ifhitspace
521
  {
528
  {
522
    tip
529
    tip
523
    ifrnd 128
530
    ifrnd 128
524
      soundonce DUKE_TIP1
531
      soundonce DUKE_TIP1
525
    else
532
    else
526
      soundonce DUKE_TIP2
533
      soundonce DUKE_TIP2
527
ifactor HALFBITCH
534
ifactor HALFBITCH
528
      action FEMHDANCE1
535
      action FEMHDANCE1
529
  }
536
  }
530
ends
537
ends
531
 
538
 
532
useractor notenemy HALFBITCH TOUGH
539
useractor notenemy HALFBITCH TOUGH
533
  state nwbabecode
540
  state nwbabecode
534
enda
541
enda
535
 
542
 
536
useractor notenemy SLUTASS TOUGH
543
useractor notenemy SLUTASS TOUGH
537
  state nwbabecode
544
  state nwbabecode
538
enda
545
enda
539
 
546
 
540
state nwl3surprise
547
state nwl3surprise
541
ifvare VOLUME 1
548
ifvare VOLUME 1
542
  {
549
  {
543
    ifvare LEVEL 2
550
    ifvare LEVEL 2
544
      {
551
      {
545
        getactor[THISACTOR].sectnum temp
552
        getactor[THISACTOR].sectnum temp
546
        switch temp
553
        switch temp
547
          case 220 case 221
554
          case 220 case 221
548
            ifvarn musicchange 1
555
            ifvarn musicchange 1
549
              {
556
              {
550
                starttrack 12 // doom
557
                starttrack 12 // doom
551
                setvar musicchange 1
558
                setvar musicchange 1
552
              }
559
              }
553
          break
560
          break
554
          case 563 case 564 case 565 case 566 case 567
561
          case 563 case 564 case 565 case 566 case 567
555
            ifvarn musicchange 2
562
            ifvarn musicchange 2
556
              {
563
              {
557
                starttrack 13 // mario
564
                starttrack 13 // mario
558
                setvar musicchange 2
565
                setvar musicchange 2
559
              }
566
              }
560
          break
567
          break
561
          case 192 case 193 case 194 case 195 case 196 case 197 case 198 case 237 case 238 case 239 case 240
568
          case 192 case 193 case 194 case 195 case 196 case 197 case 198 case 237 case 238 case 239 case 240
562
          case 166 case 167 case 172 case 173 case 174 case 176 case 179
569
          case 166 case 167 case 172 case 173 case 174 case 176 case 179
563
            ifvarn musicchange 0
570
            ifvarn musicchange 0
564
              {
571
              {
565
                starttrackvar LEVEL // level music
572
                starttrackvar LEVEL // level music
566
                setvar musicchange 0
573
                setvar musicchange 0
567
              }
574
              }
568
          break
575
          break
569
        endswitch
576
        endswitch
570
      }
577
      }
571
  }
578
  }
572
ends
579
ends
573
 
580
 
-
 
581
/*
-
 
582
action ACOMMBREETH  0  3  5  1  40
-
 
583
action ACOMMFROZEN  0  1  5
-
 
584
action ACOMMSPIN   -5  1  5  1  12
-
 
585
action ACOMMGET   0  3  5  1  30
-
 
586
action ACOMMSHOOT  20  1  5   1 35
-
 
587
action ACOMMABOUTTOSHOOT 20 1 5 1 30
-
 
588
action ACOMMDYING  30  8  1  1  12
-
 
589
action ACOMMDEAD   38  1  1  1  1
-
 
590
 
-
 
591
 
-
 
592
move COMMGETUPVELS 128 -64
-
 
593
move COMMGETVELS 128 64
-
 
594
move COMMSLOW 64 24
-
 
595
move COMMSTOPPED
-
 
596
 
-
 
597
ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
-
 
598
ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
-
 
599
ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
-
 
600
ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
-
 
601
ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
-
 
602
ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
-
 
603
ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
-
 
604
ai AICOMMGROW ACOMMGET COMMSTOPPED furthestdir
-
 
605
*/
-
 
606
 
-
 
607
move COMMGETUPVELSNW 128 -64
-
 
608
move COMMGETVELSNW 128 64
-
 
609
move COMMSLOWNW 64 24
-
 
610
move COMMSTOPPEDNW
-
 
611
 
574
action ACOMMSPINNW   0  1  5  1  12
612
action ACOMMSPINNW   0  1  5  1  12
575
action ACOMMSHOOTNW  20  1  5 1  16 // this is custom to shorten the delay between firing freezeblasts
613
action ACOMMSHOOTNW  20  1  5 1  16 // this is custom to shorten the delay between firing freezeblasts
576
 
614
 
577
ai AICOMMSPINNW ACOMMSPINNW COMMGETVELS spin
615
ai AICOMMSPINNW ACOMMSPINNW COMMGETVELSNW spin
578
ai AICOMMSHOOTNW ACOMMSHOOTNW COMMSTOPPED faceplayerslow
616
ai AICOMMSHOOTNW ACOMMSHOOTNW COMMSTOPPEDNW faceplayerslow
579
 
617
 
580
state checkcommhitstate
618
state checkcommhitstate
581
 
619
 
582
  ifhitweapon
620
  ifhitweapon
583
  {
621
  {
584
    debris SCRAP3 5
622
    debris SCRAP3 5
585
    ifdead
623
    ifdead
586
    {
624
    {
587
      ifwasweapon FREEZEBLAST
625
      ifwasweapon FREEZEBLAST
588
      {
626
      {
589
        break
627
        break
590
      }
628
      }
591
      else
629
      else
592
        ifwasweapon GROWSPARK
630
        ifwasweapon GROWSPARK
593
      {
631
      {
594
        sound ACTOR_GROWING
632
        sound ACTOR_GROWING
595
        ai AICOMMGROW
633
        ai AICOMMGROW
596
        break
634
        break
597
      }
635
      }
598
 
636
 
599
      addkills 1
637
      addkills 1
600
 
638
 
601
      ifwasweapon RADIUSEXPLOSION
639
      ifwasweapon RADIUSEXPLOSION
602
      {
640
      {
603
        debris SCRAP3 5
641
        debris SCRAP3 5
604
        sound SQUISH2
642
        sound SQUISH2
605
        killit
643
        killit
606
      }
644
      }
607
      else
645
      else
608
        ifwasweapon RPG
646
        ifwasweapon RPG
609
      {
647
      {
610
        sound SQUISH2
648
        sound SQUISH2
611
        debris SCRAP3 5
649
        debris SCRAP3 5
612
        state standard_jibs
650
        state standard_jibs
613
        killit
651
        killit
614
      }
652
      }
615
 
653
 
616
      debris SCRAP3 100
654
      debris SCRAP3 100
617
      sound COMM_DYING
655
      sound COMM_DYING
618
      ai AICOMMDYING
656
      ai AICOMMDYING
619
    }
657
    }
620
    else
658
    else
621
    {
659
    {
622
      soundonce COMM_PAIN
660
      soundonce COMM_PAIN
623
      ifwasweapon SHRINKSPARK
661
      ifwasweapon SHRINKSPARK
624
      {
662
      {
625
        sound ACTOR_SHRINKING
663
        sound ACTOR_SHRINKING
626
        ai AICOMMSHRUNK
664
        ai AICOMMSHRUNK
627
      }
665
      }
628
      else
666
      else
629
        ifwasweapon GROWSPARK
667
        ifwasweapon GROWSPARK
630
          sound EXPANDERHIT
668
          sound EXPANDERHIT
631
      else
669
      else
632
        ifrnd 24
670
        ifrnd 24
633
          ai AICOMMABOUTTOSHOOT
671
          ai AICOMMABOUTTOSHOOT
634
    }
672
    }
635
  }
673
  }
636
ends
674
ends
637
 
675
 
638
actor COMMANDERSTAYPUT COMMANDERSTRENGTH
676
actor COMMANDERSTAYPUT COMMANDERSTRENGTH
639
  cactor COMMANDER
677
  cactor COMMANDER
640
  ai AICOMMABOUTTOSHOOT
678
  ai AICOMMABOUTTOSHOOT
641
enda
679
enda
642
 
680
 
643
actor COMMANDER COMMANDERSTRENGTH
681
actor COMMANDER COMMANDERSTRENGTH
644
 
682
 
645
  state checksquished
683
  state checksquished
646
 
684
 
647
  ifaction ACOMMFROZEN
685
  ifaction ACOMMFROZEN
648
  {
686
  {
649
    fall
687
    fall
650
 
688
 
651
    ifcount THAWTIME
689
    ifcount THAWTIME
652
    {
690
    {
653
      getlastpal
691
      getlastpal
654
      ai AICOMMWAIT
692
      ai AICOMMWAIT
655
    }
693
    }
656
    else
694
    else
657
      ifcount FROZENDRIPTIME
695
      ifcount FROZENDRIPTIME
658
    {
696
    {
659
      ifactioncount 26
697
      ifactioncount 26
660
      {
698
      {
661
        spawn WATERDRIP
699
        spawn WATERDRIP
662
        resetactioncount
700
        resetactioncount
663
      }
701
      }
664
    }
702
    }
665
 
703
 
666
    ifhitweapon
704
    ifhitweapon
667
    {
705
    {
668
      ifwasweapon FREEZEBLAST
706
      ifwasweapon FREEZEBLAST
669
      {
707
      {
670
        strength 0
708
        strength 0
671
        break
709
        break
672
      }
710
      }
673
      addkills 1
711
      addkills 1
674
 
712
 
675
      ifrnd 84
713
      ifrnd 84
676
        spawn BLOODPOOL
714
        spawn BLOODPOOL
677
      lotsofglass 30
715
      lotsofglass 30
678
      sound GLASS_BREAKING
716
      sound GLASS_BREAKING
679
      killit
717
      killit
680
    }
718
    }
681
    ifp pfacing
719
    ifp pfacing
682
      ifpdistl FROZENQUICKKICKDIST
720
      ifpdistl FROZENQUICKKICKDIST
683
        pkick
721
        pkick
684
    break
722
    break
685
  }
723
  }
686
  ifai 0
724
  ifai 0
687
    ai AICOMMSHOOTNW
725
    ai AICOMMSHOOTNW
688
  else
726
  else
689
    ifai AICOMMWAIT
727
    ifai AICOMMWAIT
690
  {
728
  {
691
    ifcount 20
729
    ifcount 20
692
    {
730
    {
693
      ifcansee
731
      ifcansee
694
      {
732
      {
695
        ifcanshoottarget
733
        ifcanshoottarget
696
        {
734
        {
697
          ifrnd 96
735
          ifrnd 96
698
            ai AICOMMGET
736
            ai AICOMMGET
699
          else
737
          else
700
            ai AICOMMABOUTTOSHOOT
738
            ai AICOMMABOUTTOSHOOT
701
        }
739
        }
702
      }
740
      }
703
      else
741
      else
704
        ai AICOMMGET
742
        ai AICOMMGET
705
    }
743
    }
706
  }
744
  }
707
  else
745
  else
708
    ifai AICOMMABOUTTOSHOOT
746
    ifai AICOMMABOUTTOSHOOT
709
  {
747
  {
710
    ifactioncount 2
748
    ifactioncount 2
711
    {
749
    {
712
      ifcansee
750
      ifcansee
713
        ai AICOMMSHOOTNW
751
        ai AICOMMSHOOTNW
714
      else
752
      else
715
      {
753
      {
716
        ai AICOMMGET
754
        ai AICOMMGET
717
        break
755
        break
718
      }
756
      }
719
    }
757
    }
720
    ifrnd 32 soundonce COMM_ATTACK
758
    ifrnd 32 soundonce COMM_ATTACK
721
  }
759
  }
722
  else
760
  else
723
    ifai AICOMMSHOOTNW
761
    ifai AICOMMSHOOTNW
724
  {
762
  {
725
    ifcanshoottarget
763
    ifcanshoottarget
726
    {
764
    {
727
      ifcount 12
765
      ifcount 12
728
        ifrnd 16
766
        ifrnd 16
729
          ai AICOMMWAIT
767
          ai AICOMMWAIT
730
	
768
	
731
      ifactioncount 1
769
      ifactioncount 1
732
      {
770
      {
733
        shoot FREEZEBLAST
771
        shoot FREEZEBLAST
734
        resetactioncount
772
        resetactioncount
735
      }
773
      }
736
 
774
 
737
      getplayer[THISACTOR].i temp
775
      getplayer[THISACTOR].i temp
738
      getactor[temp].pal temp
776
      getactor[temp].pal temp
739
      ifvare temp 1 // if player is frozen
777
      ifvare temp 1 // if player is frozen
740
        ai AICOMMGET
778
        ai AICOMMGET
741
    }
779
    }
742
    else
780
    else
743
      ai AICOMMGET
781
      ai AICOMMGET
744
  }
782
  }
745
  else
783
  else
746
    ifai AICOMMSHRUNK
784
    ifai AICOMMSHRUNK
747
  {
785
  {
748
    ifcount SHRUNKDONECOUNT
786
    ifcount SHRUNKDONECOUNT
749
      ai AICOMMGET
787
      ai AICOMMGET
750
    else
788
    else
751
      ifcount SHRUNKCOUNT
789
      ifcount SHRUNKCOUNT
752
        sizeto 48 40
790
        sizeto 48 40
753
    else
791
    else
754
      state genericshrunkcode
792
      state genericshrunkcode
755
  }
793
  }
756
  else
794
  else
757
    ifai AICOMMGROW
795
    ifai AICOMMGROW
758
      state genericgrowcode
796
      state genericgrowcode
759
  else
797
  else
760
    ifai AICOMMGET
798
    ifai AICOMMGET
761
  {
799
  {
762
    ifnotmoving
800
    ifnotmoving
763
      ifrnd 4
801
      ifrnd 4
764
        operate
802
        operate
765
    ifpdistl 1024
803
    ifpdistl 1024
766
    {
804
    {
767
      ifp palive
805
      ifp palive
768
      {
806
      {
769
        sound COMM_SPIN
807
        sound COMM_SPIN
770
        ai AICOMMSPINNW
808
        ai AICOMMSPINNW
771
        break
809
        break
772
      }
810
      }
773
      
811
      
774
      getplayer[THISACTOR].i temp
812
      getplayer[THISACTOR].i temp
775
      getactor[temp].pal temp
813
      getactor[temp].pal temp
776
      ifvare temp 1 // if player is frozen
814
      ifvare temp 1 // if player is frozen
777
      {
815
      {
778
        sound COMM_SPIN
816
        sound COMM_SPIN
779
        ai AICOMMSPINNW
817
        ai AICOMMSPINNW
780
        break
818
        break
781
      }
819
      }
782
    }
820
    }
783
 
821
 
784
    ifcansee
822
    ifcansee
785
    {
823
    {
786
      ifp phigher
824
      ifp phigher
787
        move COMMGETUPVELS getv geth faceplayer
825
        move COMMGETUPVELS getv geth faceplayer
788
      else
826
      else
789
        move COMMGETVELS getv geth faceplayer
827
        move COMMGETVELS getv geth faceplayer
790
    }
828
    }
791
    ifactioncount 8
829
    ifactioncount 8
792
      ifrnd 2
830
      ifrnd 2
793
        ai AICOMMABOUTTOSHOOT
831
        ai AICOMMABOUTTOSHOOT
794
  }
832
  }
795
  else
833
  else
796
    ifai AICOMMSPINNW
834
    ifai AICOMMSPINNW
797
  {
835
  {
798
    soundonce COMM_SPIN
836
    soundonce COMM_SPIN
799
    ifcount 16
837
    ifcount 16
800
    {
838
    {
801
      ifpdistl 1280
839
      ifpdistl 1280
802
      {
840
      {
803
        setvar tempb CAPTSPINNINGPLAYER
841
        setvar tempb CAPTSPINNINGPLAYER
804
        mulvar tempb -1
842
        mulvar tempb -1
805
        // addphealth CAPTSPINNINGPLAYER
843
        // addphealth CAPTSPINNINGPLAYER
806
        getplayer[THISACTOR].i temp
844
        getplayer[THISACTOR].i temp
807
        setactor[temp].htextra tempb
845
        setactor[temp].htextra tempb
808
        setactor[temp].htpicnum KNEE
846
        setactor[temp].htpicnum KNEE
809
        setactor[temp].htowner THISACTOR
847
        setactor[temp].htowner THISACTOR
810
 
848
 
811
        globalsound DUKE_GRUNT
849
        globalsound DUKE_GRUNT
812
        palfrom 32 16
850
        palfrom 32 16
813
        resetcount
851
        resetcount
814
      }
852
      }
815
      else
853
      else
816
        ifpdistg 2300
854
        ifpdistg 2300
817
          ai AICOMMWAIT
855
          ai AICOMMWAIT
818
    }
856
    }
819
    ifactioncount 52
857
    ifactioncount 52
820
      ai AICOMMWAIT
858
      ai AICOMMWAIT
821
    ifnotmoving
859
    ifnotmoving
822
      ifrnd 32
860
      ifrnd 32
823
        operate
861
        operate
824
  }
862
  }
825
 
863
 
826
  ifai AICOMMDYING
864
  ifai AICOMMDYING
827
  {
865
  {
828
    fall
866
    fall
829
    strength 0
867
    strength 0
830
 
868
 
831
    ifhitweapon
869
    ifhitweapon
832
      ifwasweapon RADIUSEXPLOSION
870
      ifwasweapon RADIUSEXPLOSION
833
    {
871
    {
834
      sound SQUISH2
872
      sound SQUISH2
835
      spawn BLOODPOOL
873
      spawn BLOODPOOL
836
      state standard_jibs
874
      state standard_jibs
837
 
875
 
838
      killit
876
      killit
839
    }
877
    }
840
 
878
 
841
    ifaction ACOMMDYING
879
    ifaction ACOMMDYING
842
      ifactioncount 8
880
      ifactioncount 8
843
    {
881
    {
844
      iffloordistl 8
882
      iffloordistl 8
845
        sound THUD
883
        sound THUD
846
      cstat 0
884
      cstat 0
847
      action ACOMMDEAD
885
      action ACOMMDEAD
848
    }
886
    }
849
  }
887
  }
850
  else
888
  else
851
  {
889
  {
852
    ifrnd 2
890
    ifrnd 2
853
      soundonce COMM_ROAM
891
      soundonce COMM_ROAM
854
    state checkcommhitstate
892
    state checkcommhitstate
855
  }
893
  }
856
enda
894
enda
857
 
895
 
858
move TANKSTOPNW
896
move TANKSTOPNW
859
 
897
 
860
useractor enemy TANK TANKSTRENGTH
898
useractor enemy TANK TANKSTRENGTH
861
    fall
899
    fall
862
 
900
 
863
//  sizeat 45 45
901
//  sizeat 45 45
864
  ifaction 0
902
  ifaction 0
865
  {
903
  {
866
    action ATANKWAIT
904
    action ATANKWAIT
867
    cstat 257
905
    cstat 257
868
    clipdist 100
906
    clipdist 100
869
  }
907
  }
870
  else
908
  else
871
    ifaction ATANKSPIN
909
    ifaction ATANKSPIN
872
  {
910
  {
873
    soundonce TANK_ROAM
911
    soundonce TANK_ROAM
874
 
912
 
875
    ifactioncount 20
913
    ifactioncount 20
876
    {
914
    {
877
      ifrnd 16
915
      ifrnd 16
878
        ifcansee
916
        ifcansee
879
          ifcanshoottarget
917
          ifcanshoottarget
880
      {
918
      {
881
        move TANKSTOPNW geth
919
        move TANKSTOPNW geth
882
        action ATANKSHOOTING
920
        action ATANKSHOOTING
883
        stopsound TANK_ROAM
921
        stopsound TANK_ROAM
884
      }
922
      }
885
    }
923
    }
886
 
924
 
887
    ifrnd 16
925
    ifrnd 16
888
      move TANKFORWARD seekplayer
926
      move TANKFORWARD seekplayer
889
  }
927
  }
890
  else
928
  else
891
    ifaction ATANKSHOOTING
929
    ifaction ATANKSHOOTING
892
  {
930
  {
893
    ifactioncount 22
931
    ifactioncount 22
894
    {
932
    {
895
      ifpdistg 8192
933
      ifpdistg 8192
896
      {
934
      {
897
        sound BOS1_ATTACK2
935
        sound BOS1_ATTACK2
898
        shoot MORTER
936
        shoot MORTER
899
      }
937
      }
900
      resetcount
938
      resetcount
901
      move 0 action ATANKWAIT
939
      move 0 action ATANKWAIT
902
    }
940
    }
903
    else
941
    else
904
      ifactioncount 2
942
      ifactioncount 2
905
    {
943
    {
906
      ifcansee
944
      ifcansee
907
      {
945
      {
908
        ifpdistl 16384
946
        ifpdistl 16384
909
        {
947
        {
910
          ifrnd 128
948
          ifrnd 128
911
          {
949
          {
912
 
950
 
913
 
951
 
914
            sound PISTOL_FIRE
952
            sound PISTOL_FIRE
915
            shoot SHOTSPARK1
953
            shoot SHOTSPARK1
916
          }
954
          }
917
        }
955
        }
918
        else
956
        else
919
          ifrnd 128
957
          ifrnd 128
920
        {
958
        {
921
          sound PRED_ATTACK
959
          sound PRED_ATTACK
922
          shoot FIRELASER
960
          shoot FIRELASER
923
        }
961
        }
924
      }
962
      }
925
      else
963
      else
926
      {
964
      {
927
        move TANKFORWARD seekplayer
965
        move TANKFORWARD seekplayer
928
        action ATANKSPIN
966
        action ATANKSPIN
929
      }
967
      }
930
    }
968
    }
931
 
969
 
932
    ifrnd 16
970
    ifrnd 16
933
    {
971
    {
934
      stopsound TANK_ROAM
972
      stopsound TANK_ROAM
935
      move TANKSTOPNW faceplayerslow
973
      move TANKSTOPNW faceplayerslow
936
    }
974
    }
937
  }
975
  }
938
  else
976
  else
939
    ifaction ATANKWAIT
977
    ifaction ATANKWAIT
940
  {
978
  {
941
    ifactioncount 32
979
    ifactioncount 32
942
    {
980
    {
943
      move TANKFORWARD seekplayer
981
      move TANKFORWARD seekplayer
944
      action ATANKSPIN
982
      action ATANKSPIN
945
    }
983
    }
946
  }
984
  }
947
  else
985
  else
948
    ifaction ATANKDEAD
986
    ifaction ATANKDEAD
949
  {
987
  {
950
    addkills 1
988
    addkills 1
951
    hitradius 6144 TOUGH TOUGH TOUGH TOUGH
989
    hitradius 6144 TOUGH TOUGH TOUGH TOUGH
952
    sound LASERTRIP_EXPLODE
990
    sound LASERTRIP_EXPLODE
953
    debris SCRAP1 15
991
    debris SCRAP1 15
954
    spawn EXPLOSION2
992
    spawn EXPLOSION2
955
    ifrnd 128 spawn SNOWMAN
993
    ifrnd 128 spawn SNOWMAN
956
    killit
994
    killit
957
  }
995
  }
958
 
996
 
959
  ifhitweapon
997
  ifhitweapon
960
  {
998
  {
961
    ifdead
999
    ifdead
962
      action ATANKDEAD
1000
      action ATANKDEAD
963
    else
1001
    else
964
    {
1002
    {
965
      debris SCRAP1 1
1003
      debris SCRAP1 1
966
      ifaction ATANKSHOOTING break
1004
      ifaction ATANKSHOOTING break
967
 
1005
 
968
      ifrnd 192
1006
      ifrnd 192
969
      {
1007
      {
970
        move TANKSTOPNW geth
1008
        move TANKSTOPNW geth
971
        action ATANKSHOOTING
1009
        action ATANKSHOOTING
972
        stopsound TANK_ROAM
1010
        stopsound TANK_ROAM
973
      }
1011
      }
974
    }
1012
    }
975
  }
1013
  }
976
 
1014
 
977
enda
1015
enda
978
 
1016
 
979
 
1017
 
980
include NWActor.con
1018
include NWActor.con
981
include NWSnow.con
1019
include NWSnow.con
982
 
1020
 
983
// -----------------------------------------------------------------------------
1021
// -----------------------------------------------------------------------------
984
 
1022
 
985
onevent EVENT_GAME
1023
onevent EVENT_GAME
986
  ifactor APLAYER
1024
  ifactor APLAYER
987
  {
1025
  {
988
    state nwl3surprise
1026
    state nwl3surprise
989
    
1027
    
990
    getplayer[THISACTOR].holoduke_on holodukeid
1028
    getplayer[THISACTOR].holoduke_on holodukeid
991
    ifvarg holodukeid -1
1029
    ifvarg holodukeid -1
992
      setactor[holodukeid].mdflags 16
1030
      setactor[holodukeid].mdflags 16
993
    
1031
    
994
   // addlogvar skin
1032
   // addlogvar skin
995
  }
1033
  }
996
  ifactor FRAMEEFFECT1
1034
  ifactor FRAMEEFFECT1
997
    ifspawnedby APLAYER
1035
    ifspawnedby APLAYER
998
      setactor[THISACTOR].mdflags 16
1036
      setactor[THISACTOR].mdflags 16
999
 
1037
 
1000
/*
1038
/*
1001
  ifactor MONEY
1039
  ifactor MONEY
1002
    {
1040
    {
1003
      setactor[THISACTOR].mdflags 16
1041
      setactor[THISACTOR].mdflags 16
1004
      getactor[THISACTOR].owner owner
1042
      getactor[THISACTOR].owner owner
1005
      switch owner
1043
      switch owner
1006
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1044
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1007
        getactor[THISACTOR].x x
1045
        getactor[THISACTOR].x x
1008
        getactor[THISACTOR].y y
1046
        getactor[THISACTOR].y y
1009
        getactor[THISACTOR].z z
1047
        getactor[THISACTOR].z z
1010
 
1048
 
1011
        updatesectorz x y z temp
1049
        updatesectorz x y z temp
1012
        ifvarn temp -1 getflorzofslope temp x y temp2 else killit
1050
        ifvarn temp -1 getflorzofslope temp x y temp2 else killit
1013
 
1051
 
1014
        ifvarvare z temp2 killit
1052
        ifvarvare z temp2 killit
1015
      break
1053
      break
1016
      endswitch
1054
      endswitch
1017
    }
1055
    }
1018
*/
1056
*/
1019
endevent
1057
endevent
1020
 
1058
 
1021
onevent EVENT_ANIMATESPRITES // This is a hell of a mess because putting get/settspr in states throws warnings, and I don't want that.
1059
onevent EVENT_ANIMATESPRITES // This is a hell of a mess because putting get/settspr in states throws warnings, and I don't want that.
1022
 getactor[THISACTOR].picnum picnum
1060
 getactor[THISACTOR].picnum picnum
1023
 getactor[THISACTOR].owner owner
1061
 getactor[THISACTOR].owner owner
1024
 
1062
 
1025
 ifvare picnum DOORSHOCK
1063
 ifvare picnum DOORSHOCK
1026
   {
1064
   {
1027
     ifspritepal 30 settspr[THISACTOR].tsprpicnum 3656
1065
     ifspritepal 30 settspr[THISACTOR].tsprpicnum 3656
1028
     ifvare VOLUME 1 ifvare LEVEL 2 settspr[THISACTOR].tsprpicnum 3656
1066
     ifvare VOLUME 1 ifvare LEVEL 2 settspr[THISACTOR].tsprpicnum 3656
1029
     break
1067
     break
1030
   }
1068
   }
1031
 ifvare picnum SNOWFLAKE
1069
 ifvare picnum SNOWFLAKE
1032
   {
1070
   {
1033
     settspr[THISACTOR].tsprpicnum SNOW
1071
     settspr[THISACTOR].tsprpicnum SNOW
1034
     settspr[THISACTOR].tsprxrepeat 4
1072
     settspr[THISACTOR].tsprxrepeat 4
1035
     settspr[THISACTOR].tspryrepeat 4
1073
     settspr[THISACTOR].tspryrepeat 4
1036
     break
1074
     break
1037
   }
1075
   }
1038
/*
1076
/*
1039
 ifvare picnum MONEY
1077
 ifvare picnum MONEY
1040
   {
1078
   {
1041
      switch owner
1079
      switch owner
1042
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1080
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1043
        settspr[THISACTOR].tsprpicnum SNOW
1081
        settspr[THISACTOR].tsprpicnum SNOW
1044
      break
1082
      break
1045
      endswitch
1083
      endswitch
1046
   }
1084
   }
1047
*/
1085
*/
1048
 
1086
 
1049
  switch picnum
1087
  switch picnum
1050
    case APLAYER
1088
    case APLAYER
1051
      ifvare skin SANTA
1089
      ifvare skin SANTA
1052
      {
1090
      {
1053
        gettspr[THISACTOR].tsprpicnum temp3
1091
        gettspr[THISACTOR].tsprpicnum temp3
1054
        ifvarl temp3 1544 addvar temp3 4096
1092
        ifvarl temp3 1544 addvar temp3 4096
1055
        settspr[THISACTOR].tsprpicnum temp3
1093
        settspr[THISACTOR].tsprpicnum temp3
1056
 
1094
 
1057
        ifvarg holodukeid -1
1095
        ifvarg holodukeid -1
1058
        {
1096
        {
1059
          gettspr[holodukeid].tsprpicnum temp3
1097
          gettspr[holodukeid].tsprpicnum temp3
1060
          ifvarl temp3 1544 addvar temp3 4096
1098
          ifvarl temp3 1544 addvar temp3 4096
1061
          settspr[holodukeid].tsprpicnum temp3
1099
          settspr[holodukeid].tsprpicnum temp3
1062
        }
1100
        }
1063
      }
1101
      }
1064
      break
1102
      break
1065
 
1103
 
1066
    case FRAMEEFFECT1
1104
    case FRAMEEFFECT1
1067
      ifvare skin SANTA
1105
      ifvare skin SANTA
1068
        ifspawnedby APLAYER
1106
        ifspawnedby APLAYER
1069
        {
1107
        {
1070
          gettspr[THISACTOR].tsprpicnum temp3
1108
          gettspr[THISACTOR].tsprpicnum temp3
1071
          ifvarl temp3 1544 addvar temp3 4096
1109
          ifvarl temp3 1544 addvar temp3 4096
1072
          settspr[THISACTOR].tsprpicnum temp3
1110
          settspr[THISACTOR].tsprpicnum temp3
1073
        }
1111
        }
1074
      break
1112
      break
1075
 
1113
 
1076
    case DUKETORSO
1114
    case DUKETORSO
1077
    case DUKEGUN
1115
    case DUKEGUN
1078
      getactor[owner].picnum temp2
1116
      getactor[owner].picnum temp2
1079
      ifvare temp2 SOBBOTWALK
1117
      ifvare temp2 SOBBOTWALK
1080
      {
1118
      {
1081
        gettspr[THISACTOR].tsprpicnum temp3
1119
        gettspr[THISACTOR].tsprpicnum temp3
1082
        addvar temp3 2456
1120
        addvar temp3 2456
1083
        settspr[THISACTOR].tsprpicnum temp3
1121
        settspr[THISACTOR].tsprpicnum temp3
1084
      }
1122
      }
1085
      ifvare temp2 SOBBOTFLY
1123
      ifvare temp2 SOBBOTFLY
1086
      {
1124
      {
1087
        gettspr[THISACTOR].tsprpicnum temp3
1125
        gettspr[THISACTOR].tsprpicnum temp3
1088
        addvar temp3 2456
1126
        addvar temp3 2456
1089
        settspr[THISACTOR].tsprpicnum temp3
1127
        settspr[THISACTOR].tsprpicnum temp3
1090
      }
1128
      }
1091
      ifvare temp2 APLAYER
1129
      ifvare temp2 APLAYER
1092
      {
1130
      {
1093
        ifvare skin SANTA
1131
        ifvare skin SANTA
1094
        {
1132
        {
1095
          gettspr[THISACTOR].tsprpicnum temp3
1133
          gettspr[THISACTOR].tsprpicnum temp3
1096
          addvar temp3 2456
1134
          addvar temp3 2456
1097
          settspr[THISACTOR].tsprpicnum temp3
1135
          settspr[THISACTOR].tsprpicnum temp3
1098
        }
1136
        }
1099
      }
1137
      }
1100
      break
1138
      break
1101
 
1139
 
1102
    case DUKELEG
1140
    case DUKELEG
1103
      getactor[owner].picnum temp2
1141
      getactor[owner].picnum temp2
1104
      ifvare temp2 SOBBOTWALK settspr[THISACTOR].tsprpal 30
1142
      ifvare temp2 SOBBOTWALK settspr[THISACTOR].tsprpal 30
1105
      ifvare temp2 SOBBOTFLY settspr[THISACTOR].tsprpal 30
1143
      ifvare temp2 SOBBOTFLY settspr[THISACTOR].tsprpal 30
1106
      ifvare temp2 APLAYER ifvare skin SANTA settspr[THISACTOR].tsprpal 30
1144
      ifvare temp2 APLAYER ifvare skin SANTA settspr[THISACTOR].tsprpal 30
1107
      break
1145
      break
1108
  endswitch
1146
  endswitch
1109
 
1147
 
1110
 ifvare picnum APLAYER // this fixes the bug with the misplaced TV screen tiles
1148
 ifvare picnum APLAYER // this fixes the bug with the misplaced TV screen tiles
1111
   {
1149
   {
1112
     gettspr[THISACTOR].tsprpicnum temp
1150
     gettspr[THISACTOR].tsprpicnum temp
1113
     switch temp
1151
     switch temp
1114
      case 1470 case 1471 case 1472 case 1473 case 1474
1152
      case 1470 case 1471 case 1472 case 1473 case 1474
1115
       subvar temp 5
1153
       subvar temp 5
1116
       settspr[THISACTOR].tsprpicnum temp
1154
       settspr[THISACTOR].tsprpicnum temp
1117
      break
1155
      break
1118
     endswitch
1156
     endswitch
1119
   }
1157
   }
1120
endevent
1158
endevent
1121
 
1159
 
1122
 
1160
 
1123
 
1161
 
1124
 
1162
 
1125
useractor notenemy NWEFFECTOR 0 
1163
useractor notenemy NWEFFECTOR 0 
1126
 cstat 32768
1164
 cstat 32768
1127
 // sizeat 1 1
1165
 // sizeat 1 1
1128
 
1166
 
1129
 ifspritepal 31
1167
 ifspritepal 31
1130
   {
1168
   {
1131
      getplayer[THISACTOR].cursectnum temp3
1169
      getplayer[THISACTOR].cursectnum temp3
1132
      switch temp3
1170
      switch temp3
1133
        case 60 case 61 case 62 case 63
1171
        case 60 case 61 case 62 case 63
1134
        case 86 case 87
1172
        case 86 case 87
1135
        case 299 case 300 case 301 case 302 case 303 case 304 case 305 case 306 case 307 case 308 case 309
1173
        case 299 case 300 case 301 case 302 case 303 case 304 case 305 case 306 case 307 case 308 case 309
1136
        case 310 case 311 case 312 case 313 case 314 case 315 case 316 case 317
1174
        case 310 case 311 case 312 case 313 case 314 case 315 case 316 case 317
1137
         soundonce PHONE_RING 
1175
         soundonce PHONE_RING 
1138
        break
1176
        break
1139
      endswitch
1177
      endswitch
1140
 
1178
 
1141
      ifpdistl RETRIEVEDISTANCE
1179
      ifpdistl RETRIEVEDISTANCE
1142
      ifp pfacing
1180
      ifp pfacing
1143
      ifhitspace
1181
      ifhitspace
1144
      ifvare temp2 0
1182
      ifvare temp2 0
1145
        {
1183
        {
1146
          setvar temp 0
1184
          setvar temp 0
1147
          setvar temp2 1
1185
          setvar temp2 1
1148
        }
1186
        }
1149
 
1187
 
1150
      ifvare temp2 1
1188
      ifvare temp2 1
1151
        {
1189
        {
1152
          addvar temp 1
1190
          addvar temp 1
1153
 
1191
 
1154
          stopsound PHONE_RING
1192
          stopsound PHONE_RING
1155
          ifvare temp 1 sound PHONE_PICKUP
1193
          ifvare temp 1 sound PHONE_PICKUP
1156
     else ifvare temp 39
1194
     else ifvare temp 39
1157
            {
1195
            {
1158
              setvar tempb 0
1196
              setvar tempb 0
1159
              randvar tempb 3
1197
              randvar tempb 3
1160
              switch tempb
1198
              switch tempb
1161
               case 0 sound LOWANG1 break
1199
               case 0 sound LOWANG1 break
1162
               case 1 sound LOWANG2 break
1200
               case 1 sound LOWANG2 break
1163
               case 2 sound LOWANG3 break
1201
               case 2 sound LOWANG3 break
1164
               case 3 sound LOWANG4 break
1202
               case 3 sound LOWANG4 break
1165
              endswitch
1203
              endswitch
1166
            }
1204
            }
1167
     else ifvare temp 195 sound PHONE_HANGUP
1205
     else ifvare temp 195 sound PHONE_HANGUP
1168
     else ifvare temp 247
1206
     else ifvare temp 247
1169
            {
1207
            {
1170
              setvar temp2 0
1208
              setvar temp2 0
1171
              setvar temp 0
1209
              setvar temp 0
1172
            }
1210
            }
1173
        }
1211
        }
1174
   }
1212
   }
1175
enda
1213
enda
1176
 
1214
 
1177
useractor notenemy 3831 0
1215
useractor notenemy 3831 0
1178
// cstat 32768
1216
// cstat 32768
1179
 sizeat 12 13
1217
 sizeat 12 13
1180
 getactor[THISACTOR].sectnum temp
1218
 getactor[THISACTOR].sectnum temp
1181
 getplayer[THISACTOR].cursectnum temp2
1219
 getplayer[THISACTOR].cursectnum temp2
1182
 ifvarvare temp temp2
1220
 ifvarvare temp temp2
1183
   {
1221
   {
1184
     setuserdef[THISACTOR].volume_number 1
1222
     setuserdef[THISACTOR].volume_number 1
1185
     endofgame 13
1223
     endofgame 13
1186
   }
1224
   }
1187
enda
1225
enda
1188
 
1226
 
1189
action WOODENHORSE2FRAME  0   1   5
1227
action WOODENHORSE2FRAME  0   1   5
1190
action WOODEN2FALLFRAME  -2738  1   5
1228
action WOODEN2FALLFRAME  -2738  1   5
1191
useractor notenemy WOODENHORSE2 WEAK WOODENHORSE2FRAME
1229
useractor notenemy WOODENHORSE2 WEAK WOODENHORSE2FRAME
1192
  fall
1230
  fall
1193
  ifhitweapon
1231
  ifhitweapon
1194
  {
1232
  {
1195
    ifdead
1233
    ifdead
1196
    {
1234
    {
1197
      debris SCRAP1 4
1235
      debris SCRAP1 4
1198
      debris SCRAP2 3
1236
      debris SCRAP2 3
1199
      killit
1237
      killit
1200
    }
1238
    }
1201
    else
1239
    else
1202
      action WOODEN2FALLFRAME
1240
      action WOODEN2FALLFRAME
1203
  }
1241
  }
1204
enda
1242
enda
1205
 
1243
 
1206
useractor notenemy NWSTEAM 0 
1244
useractor notenemy NWSTEAM 0 
1207
  ifpdistl 6144
1245
  ifpdistl 6144
1208
    soundonce STEAM_HISSING
1246
    soundonce STEAM_HISSING
1209
enda
1247
enda
1210
 
1248
 
1211
define title_x1 73
1249
define title_x1 73
1212
define title_x2 306
1250
define title_x2 306
1213
define title_y 194
1251
define title_y 194
1214
define title_zoom 32768
1252
define title_zoom 32768
1215
 
1253
 
1216
onevent EVENT_DISPLAYMENU
1254
onevent EVENT_DISPLAYMENU
1217
//  getplayer[THISACTOR].gm temp
1255
//  getplayer[THISACTOR].gm temp
1218
//  ifvarand temp 4 nullop else
1256
//  ifvarand temp 4 nullop else
1219
// {
1257
// {
1220
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1258
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1221
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1259
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1222
// }
1260
// }
1223
endevent
1261
endevent
1224
 
1262
 
1225
/*
1263
/*
1226
onevent EVENT_DISPLAYTITLE
1264
onevent EVENT_DISPLAYTITLE
1227
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1265
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1228
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1266
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1229
endevent
1267
endevent
1230
*/
1268
*/
1231
 
1269
 
1232
 
1270
 
1233
 
1271