Subversion Repositories nw_plus

Rev

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

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