Subversion Repositories nw_plus

Rev

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

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