Merge pull request #1855 from KieronJ/sndtest

Finish plasma.c for s08c/s08cr
This commit is contained in:
Kieron 2024-02-01 23:09:31 +00:00 committed by GitHub
commit 4294a26394
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 394 additions and 907 deletions

View File

@ -379,13 +379,13 @@ Individual overlay progress:
<td><b>s08c</b></td>
<td>60 KB</td>
<td>Corridor</td>
<td>🚧 Work in progress</td>
<td><b>✔️ 100% decompiled!</b></td>
</tr>
<tr>
<td><b>s08cr</b></td>
<td>60 KB</td>
<td>Corridor (RED)</td>
<td>🚧 Work in progress</td>
<td><b>✔️ 100% decompiled!</b></td>
</tr>
<tr>
<td><b>s09a</b></td>

View File

@ -1,126 +0,0 @@
opt c+, at+, e+, n-
section overlay.text
xdef s08c_plasma_800CBDA8
s08c_plasma_800CBDA8:
dw 0x27BDFFD0 ; 800CBDA8
dw 0xAFB3001C ; 800CBDAC
dw 0x00809821 ; 800CBDB0
dw 0xAFB40020 ; 800CBDB4
dw 0x00A0A021 ; 800CBDB8
dw 0xAFB50024 ; 800CBDBC
dw 0xAFBF0028 ; 800CBDC0
dw 0xAFB20018 ; 800CBDC4
dw 0xAFB10014 ; 800CBDC8
dw 0xAFB00010 ; 800CBDCC
dw 0x8E6303BC ; 800CBDD0
dw 0x24020001 ; 800CBDD4
dw 0x14620016 ; 800CBDD8
dw 0x00C0A821 ; 800CBDDC
dw 0x00008821 ; 800CBDE0
dw 0x02609021 ; 800CBDE4
dw 0x02608021 ; 800CBDE8
dw 0x0C005C2F ; 800CBDEC
dw 0x24040020 ; 800CBDF0
dw 0x24041000 ; 800CBDF4
dw 0x966303B8 ; 800CBDF8
dw 0x26310001 ; 800CBDFC
dw 0x00621821 ; 800CBE00
dw 0x0C005C24 ; 800CBE04
dw 0xA603031C ; 800CBE08
dw 0x24041000 ; 800CBE0C
dw 0x0C005C24 ; 800CBE10
dw 0xA602033E ; 800CBE14
dw 0xAE420360 ; 800CBE18
dw 0x26520010 ; 800CBE1C
dw 0x2A220005 ; 800CBE20
dw 0x1440FFF1 ; 800CBE24
dw 0x26100008 ; 800CBE28
dw 0x08032F9E ; 800CBE2C
dw 0x00000000 ; 800CBE30
dw 0x00008821 ; 800CBE34
dw 0x02609021 ; 800CBE38
dw 0x02608021 ; 800CBE3C
dw 0x0C005C24 ; 800CBE40
dw 0x24041000 ; 800CBE44
dw 0x24041000 ; 800CBE48
dw 0x0C005C24 ; 800CBE4C
dw 0xA602031C ; 800CBE50
dw 0x24041000 ; 800CBE54
dw 0x0C005C24 ; 800CBE58
dw 0xA602033E ; 800CBE5C
dw 0xAE420360 ; 800CBE60
dw 0x26520010 ; 800CBE64
dw 0x26310001 ; 800CBE68
dw 0x2A220005 ; 800CBE6C
dw 0x1440FFF3 ; 800CBE70
dw 0x26100008 ; 800CBE74
dw 0x8662034E ; 800CBE78
dw 0x86630346 ; 800CBE7C
dw 0x00000000 ; 800CBE80
dw 0x0043102A ; 800CBE84
dw 0x9663034E ; 800CBE88
dw 0x10400002 ; 800CBE8C
dw 0x00000000 ; 800CBE90
dw 0xA6630346 ; 800CBE94
dw 0x86620356 ; 800CBE98
dw 0x86630346 ; 800CBE9C
dw 0x00000000 ; 800CBEA0
dw 0x0043102A ; 800CBEA4
dw 0x96630356 ; 800CBEA8
dw 0x10400002 ; 800CBEAC
dw 0x00000000 ; 800CBEB0
dw 0xA6630346 ; 800CBEB4
dw 0x86620356 ; 800CBEB8
dw 0x8663034E ; 800CBEBC
dw 0x00000000 ; 800CBEC0
dw 0x0043102A ; 800CBEC4
dw 0x96630356 ; 800CBEC8
dw 0x10400002 ; 800CBECC
dw 0x24021000 ; 800CBED0
dw 0xA663034E ; 800CBED4
dw 0x8A870003 ; 800CBED8
dw 0x9A870000 ; 800CBEDC
dw 0x8A880007 ; 800CBEE0
dw 0x9A880004 ; 800CBEE4
dw 0xAA6702F7 ; 800CBEE8
dw 0xBA6702F4 ; 800CBEEC
dw 0xAA6802FB ; 800CBEF0
dw 0xBA6802F8 ; 800CBEF4
dw 0x8AA70003 ; 800CBEF8
dw 0x9AA70000 ; 800CBEFC
dw 0x8AA80007 ; 800CBF00
dw 0x9AA80004 ; 800CBF04
dw 0xAA6702FF ; 800CBF08
dw 0xBA6702FC ; 800CBF0C
dw 0xAA680303 ; 800CBF10
dw 0xBA680300 ; 800CBF14
dw 0x8A6702F7 ; 800CBF18
dw 0x9A6702F4 ; 800CBF1C
dw 0x8A6802FB ; 800CBF20
dw 0x9A6802F8 ; 800CBF24
dw 0xAA67004F ; 800CBF28
dw 0xBA67004C ; 800CBF2C
dw 0xAA680053 ; 800CBF30
dw 0xBA680050 ; 800CBF34
dw 0x8A6702FF ; 800CBF38
dw 0x9A6702FC ; 800CBF3C
dw 0x8A680303 ; 800CBF40
dw 0x9A680300 ; 800CBF44
dw 0xAA6700CF ; 800CBF48
dw 0xBA6700CC ; 800CBF4C
dw 0xAA6800D3 ; 800CBF50
dw 0xBA6800D0 ; 800CBF54
dw 0xA660033E ; 800CBF58
dw 0xA662035E ; 800CBF5C
dw 0xAE600360 ; 800CBF60
dw 0xAE6003A0 ; 800CBF64
dw 0x8FBF0028 ; 800CBF68
dw 0x8FB50024 ; 800CBF6C
dw 0x8FB40020 ; 800CBF70
dw 0x8FB3001C ; 800CBF74
dw 0x8FB20018 ; 800CBF78
dw 0x8FB10014 ; 800CBF7C
dw 0x8FB00010 ; 800CBF80
dw 0x03E00008 ; 800CBF84
dw 0x27BD0030 ; 800CBF88

View File

@ -1,90 +0,0 @@
opt c+, at+, e+, n-
section overlay.text
xdef s08c_plasma_800CC104
s08c_plasma_800CC104:
dw 0x27BDFFE8 ; 800CC104
dw 0xAFB00010 ; 800CC108
dw 0x00808021 ; 800CC10C
dw 0xAFBF0014 ; 800CC110
dw 0x0C005C24 ; 800CC114
dw 0x24040020 ; 800CC118
dw 0x96030324 ; 800CC11C
dw 0x24040040 ; 800CC120
dw 0x00621821 ; 800CC124
dw 0x30630FFF ; 800CC128
dw 0x0C005C2F ; 800CC12C
dw 0xA6030324 ; 800CC130
dw 0x96030346 ; 800CC134
dw 0x24040080 ; 800CC138
dw 0x00621821 ; 800CC13C
dw 0x30630FFF ; 800CC140
dw 0x0C005C2F ; 800CC144
dw 0xA6030346 ; 800CC148
dw 0x8E030370 ; 800CC14C
dw 0x24040020 ; 800CC150
dw 0x00621821 ; 800CC154
dw 0x306307FF ; 800CC158
dw 0x0C005C24 ; 800CC15C
dw 0xAE030370 ; 800CC160
dw 0x9603032C ; 800CC164
dw 0x24040040 ; 800CC168
dw 0x00621821 ; 800CC16C
dw 0x30630FFF ; 800CC170
dw 0x0C005C2F ; 800CC174
dw 0xA603032C ; 800CC178
dw 0x9603034E ; 800CC17C
dw 0x24040080 ; 800CC180
dw 0x00621821 ; 800CC184
dw 0x30630FFF ; 800CC188
dw 0x0C005C2F ; 800CC18C
dw 0xA603034E ; 800CC190
dw 0x8E030380 ; 800CC194
dw 0x24040020 ; 800CC198
dw 0x00621821 ; 800CC19C
dw 0x306307FF ; 800CC1A0
dw 0x0C005C24 ; 800CC1A4
dw 0xAE030380 ; 800CC1A8
dw 0x96030334 ; 800CC1AC
dw 0x24040040 ; 800CC1B0
dw 0x00621821 ; 800CC1B4
dw 0x30630FFF ; 800CC1B8
dw 0x0C005C2F ; 800CC1BC
dw 0xA6030334 ; 800CC1C0
dw 0x96030356 ; 800CC1C4
dw 0x24040080 ; 800CC1C8
dw 0x00621821 ; 800CC1CC
dw 0x30630FFF ; 800CC1D0
dw 0x0C005C2F ; 800CC1D4
dw 0xA6030356 ; 800CC1D8
dw 0x8E030390 ; 800CC1DC
dw 0x86040346 ; 800CC1E0
dw 0x00621821 ; 800CC1E4
dw 0x8602034E ; 800CC1E8
dw 0x306307FF ; 800CC1EC
dw 0xAE030390 ; 800CC1F0
dw 0x9603034E ; 800CC1F4
dw 0x0044102A ; 800CC1F8
dw 0x10400002 ; 800CC1FC
dw 0x00000000 ; 800CC200
dw 0xA6030346 ; 800CC204
dw 0x86020356 ; 800CC208
dw 0x86030346 ; 800CC20C
dw 0x00000000 ; 800CC210
dw 0x0043102A ; 800CC214
dw 0x96030356 ; 800CC218
dw 0x10400002 ; 800CC21C
dw 0x00000000 ; 800CC220
dw 0xA6030346 ; 800CC224
dw 0x86020356 ; 800CC228
dw 0x8603034E ; 800CC22C
dw 0x00000000 ; 800CC230
dw 0x0043102A ; 800CC234
dw 0x96030356 ; 800CC238
dw 0x10400002 ; 800CC23C
dw 0x00000000 ; 800CC240
dw 0xA603034E ; 800CC244
dw 0x8FBF0014 ; 800CC248
dw 0x8FB00010 ; 800CC24C
dw 0x03E00008 ; 800CC250
dw 0x27BD0018 ; 800CC254

View File

@ -1,232 +0,0 @@
opt c+, at+, e+, n-
section overlay.text
xdef s08c_plasma_800CC258
s08c_plasma_800CC258:
dw 0x3C02800B ; 800CC258
dw 0x8C42B920 ; 800CC25C
dw 0x27BDFFD0 ; 800CC260
dw 0xAFB00020 ; 800CC264
dw 0x00808021 ; 800CC268
dw 0xAFBF0028 ; 800CC26C
dw 0xAFB10024 ; 800CC270
dw 0x8E030030 ; 800CC274
dw 0x8E0403AC ; 800CC278
dw 0x00021080 ; 800CC27C
dw 0x00621821 ; 800CC280
dw 0x2482FFFC ; 800CC284
dw 0x2C420002 ; 800CC288
dw 0x8C710040 ; 800CC28C
dw 0x10400034 ; 800CC290
dw 0x24020004 ; 800CC294
dw 0x14820011 ; 800CC298
dw 0x00000000 ; 800CC29C
dw 0x0C005C2F ; 800CC2A0
dw 0x24040080 ; 800CC2A4
dw 0x960302F4 ; 800CC2A8
dw 0x24040080 ; 800CC2AC
dw 0x00621821 ; 800CC2B0
dw 0x0C005C2F ; 800CC2B4
dw 0xA60302F4 ; 800CC2B8
dw 0x960302F6 ; 800CC2BC
dw 0x24040080 ; 800CC2C0
dw 0x00621821 ; 800CC2C4
dw 0x0C005C2F ; 800CC2C8
dw 0xA60302F6 ; 800CC2CC
dw 0x960302F8 ; 800CC2D0
dw 0x00000000 ; 800CC2D4
dw 0x00621821 ; 800CC2D8
dw 0xA60302F8 ; 800CC2DC
dw 0xA7A00010 ; 800CC2E0
dw 0x960203B4 ; 800CC2E4
dw 0xA7A00014 ; 800CC2E8
dw 0xA7A20012 ; 800CC2EC
dw 0x8E0303BC ; 800CC2F0
dw 0x24020001 ; 800CC2F4
dw 0x14620005 ; 800CC2F8
dw 0x00000000 ; 800CC2FC
dw 0xA7A00018 ; 800CC300
dw 0x960203B8 ; 800CC304
dw 0x080330CA ; 800CC308
dw 0xA7A2001A ; 800CC30C
dw 0x0C005C24 ; 800CC310
dw 0x24041000 ; 800CC314
dw 0x24041000 ; 800CC318
dw 0x0C005C24 ; 800CC31C
dw 0xA7A20018 ; 800CC320
dw 0xA7A2001A ; 800CC324
dw 0xA7A0001C ; 800CC328
dw 0x3C04800B ; 800CC32C
dw 0x2484B39C ; 800CC330
dw 0x0C006F23 ; 800CC334
dw 0x27A50018 ; 800CC338
dw 0x27A40010 ; 800CC33C
dw 0x00802821 ; 800CC340
dw 0x0C006F92 ; 800CC344
dw 0x24060001 ; 800CC348
dw 0x260402FC ; 800CC34C
dw 0x27A50010 ; 800CC350
dw 0x0C005B40 ; 800CC354
dw 0x00803021 ; 800CC358
dw 0x08033106 ; 800CC35C
dw 0x00000000 ; 800CC360
dw 0x0C005C2F ; 800CC364
dw 0x24040020 ; 800CC368
dw 0x14400027 ; 800CC36C
dw 0x240200FF ; 800CC370
dw 0x8E0303AC ; 800CC374
dw 0x00000000 ; 800CC378
dw 0x10620023 ; 800CC37C
dw 0x02202021 ; 800CC380
dw 0x0C032F36 ; 800CC384
dw 0x24050080 ; 800CC388
dw 0x0C005C2F ; 800CC38C
dw 0x24040080 ; 800CC390
dw 0x960302F4 ; 800CC394
dw 0x24040080 ; 800CC398
dw 0x00621821 ; 800CC39C
dw 0x0C005C2F ; 800CC3A0
dw 0xA60302F4 ; 800CC3A4
dw 0x960302F6 ; 800CC3A8
dw 0x24040080 ; 800CC3AC
dw 0x00621821 ; 800CC3B0
dw 0x0C005C2F ; 800CC3B4
dw 0xA60302F6 ; 800CC3B8
dw 0x960302F8 ; 800CC3BC
dw 0x24040400 ; 800CC3C0
dw 0x00621821 ; 800CC3C4
dw 0x0C005C2F ; 800CC3C8
dw 0xA60302F8 ; 800CC3CC
dw 0x960302FC ; 800CC3D0
dw 0x24040400 ; 800CC3D4
dw 0x00621821 ; 800CC3D8
dw 0x0C005C2F ; 800CC3DC
dw 0xA60302FC ; 800CC3E0
dw 0x960302FE ; 800CC3E4
dw 0x24040400 ; 800CC3E8
dw 0x00621821 ; 800CC3EC
dw 0x0C005C2F ; 800CC3F0
dw 0xA60302FE ; 800CC3F4
dw 0x96030300 ; 800CC3F8
dw 0x00000000 ; 800CC3FC
dw 0x00621821 ; 800CC400
dw 0x08033106 ; 800CC404
dw 0xA6030300 ; 800CC408
dw 0x02202021 ; 800CC40C
dw 0x0C032F36 ; 800CC410
dw 0x24050050 ; 800CC414
dw 0x8E0303BC ; 800CC418
dw 0x24020001 ; 800CC41C
dw 0x14620030 ; 800CC420
dw 0x00000000 ; 800CC424
dw 0x0C005C2F ; 800CC428
dw 0x24040040 ; 800CC42C
dw 0x96030324 ; 800CC430
dw 0x24040020 ; 800CC434
dw 0x00621821 ; 800CC438
dw 0x0C005C2F ; 800CC43C
dw 0xA6030324 ; 800CC440
dw 0x96030346 ; 800CC444
dw 0x24040020 ; 800CC448
dw 0x00621821 ; 800CC44C
dw 0x0C005C2F ; 800CC450
dw 0xA6030346 ; 800CC454
dw 0x8E030370 ; 800CC458
dw 0x24040040 ; 800CC45C
dw 0x00621821 ; 800CC460
dw 0x0C005C2F ; 800CC464
dw 0xAE030370 ; 800CC468
dw 0x9603032C ; 800CC46C
dw 0x24040020 ; 800CC470
dw 0x00621821 ; 800CC474
dw 0x0C005C2F ; 800CC478
dw 0xA603032C ; 800CC47C
dw 0x9603034E ; 800CC480
dw 0x24040020 ; 800CC484
dw 0x00621821 ; 800CC488
dw 0x0C005C2F ; 800CC48C
dw 0xA603034E ; 800CC490
dw 0x8E030380 ; 800CC494
dw 0x24040040 ; 800CC498
dw 0x00621821 ; 800CC49C
dw 0x0C005C2F ; 800CC4A0
dw 0xAE030380 ; 800CC4A4
dw 0x96030334 ; 800CC4A8
dw 0x24040020 ; 800CC4AC
dw 0x00621821 ; 800CC4B0
dw 0x0C005C2F ; 800CC4B4
dw 0xA6030334 ; 800CC4B8
dw 0x96030356 ; 800CC4BC
dw 0x24040020 ; 800CC4C0
dw 0x00621821 ; 800CC4C4
dw 0x0C005C2F ; 800CC4C8
dw 0xA6030356 ; 800CC4CC
dw 0x8E030390 ; 800CC4D0
dw 0x00000000 ; 800CC4D4
dw 0x00621821 ; 800CC4D8
dw 0x0803315C ; 800CC4DC
dw 0xAE030390 ; 800CC4E0
dw 0x0C005C24 ; 800CC4E4
dw 0x24040200 ; 800CC4E8
dw 0x9603031C ; 800CC4EC
dw 0x24041000 ; 800CC4F0
dw 0x00621821 ; 800CC4F4
dw 0x0C005C24 ; 800CC4F8
dw 0xA6030324 ; 800CC4FC
dw 0x24041000 ; 800CC500
dw 0x0C005C24 ; 800CC504
dw 0xA6020346 ; 800CC508
dw 0x24040200 ; 800CC50C
dw 0x00021083 ; 800CC510
dw 0x0C005C24 ; 800CC514
dw 0xAE020370 ; 800CC518
dw 0x96030324 ; 800CC51C
dw 0x24041000 ; 800CC520
dw 0x00621821 ; 800CC524
dw 0x0C005C24 ; 800CC528
dw 0xA603032C ; 800CC52C
dw 0x24041000 ; 800CC530
dw 0x0C005C24 ; 800CC534
dw 0xA602034E ; 800CC538
dw 0x24040200 ; 800CC53C
dw 0x0C005C24 ; 800CC540
dw 0xAE020380 ; 800CC544
dw 0x9603032C ; 800CC548
dw 0x24041000 ; 800CC54C
dw 0x00621821 ; 800CC550
dw 0x0C005C24 ; 800CC554
dw 0xA6030334 ; 800CC558
dw 0x24041000 ; 800CC55C
dw 0x0C005C24 ; 800CC560
dw 0xA6020356 ; 800CC564
dw 0x00021043 ; 800CC568
dw 0xAE020390 ; 800CC56C
dw 0x8602034E ; 800CC570
dw 0x86030346 ; 800CC574
dw 0x00000000 ; 800CC578
dw 0x0043102A ; 800CC57C
dw 0x9603034E ; 800CC580
dw 0x10400002 ; 800CC584
dw 0x00000000 ; 800CC588
dw 0xA6030346 ; 800CC58C
dw 0x86020356 ; 800CC590
dw 0x86030346 ; 800CC594
dw 0x00000000 ; 800CC598
dw 0x0043102A ; 800CC59C
dw 0x96030356 ; 800CC5A0
dw 0x10400002 ; 800CC5A4
dw 0x00000000 ; 800CC5A8
dw 0xA6030346 ; 800CC5AC
dw 0x86020356 ; 800CC5B0
dw 0x8603034E ; 800CC5B4
dw 0x00000000 ; 800CC5B8
dw 0x0043102A ; 800CC5BC
dw 0x96030356 ; 800CC5C0
dw 0x10400002 ; 800CC5C4
dw 0x00000000 ; 800CC5C8
dw 0xA603034E ; 800CC5CC
dw 0x8FBF0028 ; 800CC5D0
dw 0x8FB10024 ; 800CC5D4
dw 0x8FB00020 ; 800CC5D8
dw 0x03E00008 ; 800CC5DC
dw 0x27BD0030 ; 800CC5E0

View File

@ -1,43 +0,0 @@
opt c+, at+, e+, n-
section overlay.text
xdef s08c_plasma_800CC5E4
s08c_plasma_800CC5E4:
dw 0x00A63823 ; 800CC5E4
dw 0x00A63021 ; 800CC5E8
dw 0x00055040 ; 800CC5EC
dw 0x00074840 ; 800CC5F0
dw 0x00894821 ; 800CC5F4
dw 0x00064040 ; 800CC5F8
dw 0x00884021 ; 800CC5FC
dw 0x008A5021 ; 800CC600
dw 0x00052880 ; 800CC604
dw 0x00073880 ; 800CC608
dw 0x00873821 ; 800CC60C
dw 0x00063080 ; 800CC610
dw 0x8502033E ; 800CC614
dw 0x8523033E ; 800CC618
dw 0x00863021 ; 800CC61C
dw 0x00431023 ; 800CC620
dw 0x00021840 ; 800CC624
dw 0x00621821 ; 800CC628
dw 0x9522033E ; 800CC62C
dw 0x00031883 ; 800CC630
dw 0x00431021 ; 800CC634
dw 0xA542033E ; 800CC638
dw 0x8CC20360 ; 800CC63C
dw 0x8CE30360 ; 800CC640
dw 0x00852021 ; 800CC644
dw 0x00431023 ; 800CC648
dw 0x00021043 ; 800CC64C
dw 0x00621821 ; 800CC650
dw 0xAC830360 ; 800CC654
dw 0x8503031C ; 800CC658
dw 0x8522031C ; 800CC65C
dw 0x00000000 ; 800CC660
dw 0x00621823 ; 800CC664
dw 0x9522031C ; 800CC668
dw 0x00031843 ; 800CC66C
dw 0x00431021 ; 800CC670
dw 0x03E00008 ; 800CC674
dw 0xA542031C ; 800CC678

View File

@ -1,383 +0,0 @@
opt c+, at+, e+, n-
section overlay.text
xdef s08c_plasma_800CC67C
s08c_plasma_800CC67C:
dw 0x27BDFF98 ; 800CC67C
dw 0xAFB50054 ; 800CC680
dw 0x0080A821 ; 800CC684
dw 0xAFBF0060 ; 800CC688
dw 0xAFB7005C ; 800CC68C
dw 0xAFB60058 ; 800CC690
dw 0xAFB40050 ; 800CC694
dw 0xAFB3004C ; 800CC698
dw 0xAFB20048 ; 800CC69C
dw 0xAFB10044 ; 800CC6A0
dw 0xAFB00040 ; 800CC6A4
dw 0x8EA30020 ; 800CC6A8
dw 0x3C02800B ; 800CC6AC
dw 0xAC43B9B0 ; 800CC6B0
dw 0x8EA303AC ; 800CC6B4
dw 0x240200FF ; 800CC6B8
dw 0x10620021 ; 800CC6BC
dw 0x00000000 ; 800CC6C0
dw 0x8EA303A4 ; 800CC6C4
dw 0x8EA203A8 ; 800CC6C8
dw 0x00000000 ; 800CC6CC
dw 0x0043102A ; 800CC6D0
dw 0x10400003 ; 800CC6D4
dw 0x00000000 ; 800CC6D8
dw 0x0C005472 ; 800CC6DC
dw 0x00000000 ; 800CC6E0
dw 0x8EA303AC ; 800CC6E4
dw 0x24020005 ; 800CC6E8
dw 0x10620015 ; 800CC6EC
dw 0x00000000 ; 800CC6F0
dw 0x8EA20028 ; 800CC6F4
dw 0x8EA30028 ; 800CC6F8
dw 0x94420014 ; 800CC6FC
dw 0x00000000 ; 800CC700
dw 0xA6A202F4 ; 800CC704
dw 0x94620018 ; 800CC708
dw 0x00000000 ; 800CC70C
dw 0xA6A202F6 ; 800CC710
dw 0x9462001C ; 800CC714
dw 0x8EA3002C ; 800CC718
dw 0xA6A202F8 ; 800CC71C
dw 0x94620014 ; 800CC720
dw 0x00000000 ; 800CC724
dw 0xA6A202FC ; 800CC728
dw 0x94620018 ; 800CC72C
dw 0x00000000 ; 800CC730
dw 0xA6A202FE ; 800CC734
dw 0x9462001C ; 800CC738
dw 0x00000000 ; 800CC73C
dw 0xA6A20300 ; 800CC740
dw 0x8EA203A4 ; 800CC744
dw 0x24040200 ; 800CC748
dw 0x24420001 ; 800CC74C
dw 0x0C005C24 ; 800CC750
dw 0xAEA203A4 ; 800CC754
dw 0x14400004 ; 800CC758
dw 0x00000000 ; 800CC75C
dw 0x0C005C2F ; 800CC760
dw 0x24040020 ; 800CC764
dw 0xAEA203B0 ; 800CC768
dw 0x8EA303AC ; 800CC76C
dw 0x24020002 ; 800CC770
dw 0x10620011 ; 800CC774
dw 0x28620003 ; 800CC778
dw 0x10400007 ; 800CC77C
dw 0x28620004 ; 800CC780
dw 0x10600021 ; 800CC784
dw 0x24020001 ; 800CC788
dw 0x10620023 ; 800CC78C
dw 0x00000000 ; 800CC790
dw 0x0803325D ; 800CC794
dw 0x00000000 ; 800CC798
dw 0x14400075 ; 800CC79C
dw 0x28620006 ; 800CC7A0
dw 0x14400019 ; 800CC7A4
dw 0x240200FF ; 800CC7A8
dw 0x1062001F ; 800CC7AC
dw 0x3C04800D ; 800CC7B0
dw 0x0803325D ; 800CC7B4
dw 0x00000000 ; 800CC7B8
dw 0x3C02EA0E ; 800CC7BC
dw 0x8EA403A4 ; 800CC7C0
dw 0x3442A0EB ; 800CC7C4
dw 0x00820018 ; 800CC7C8
dw 0x000417C3 ; 800CC7CC
dw 0x00003810 ; 800CC7D0
dw 0x00E41821 ; 800CC7D4
dw 0x00031983 ; 800CC7D8
dw 0x00621823 ; 800CC7DC
dw 0x000310C0 ; 800CC7E0
dw 0x00431021 ; 800CC7E4
dw 0x00021080 ; 800CC7E8
dw 0x00431023 ; 800CC7EC
dw 0x00021040 ; 800CC7F0
dw 0x8EA303B0 ; 800CC7F4
dw 0x00822023 ; 800CC7F8
dw 0x24630023 ; 800CC7FC
dw 0x0083202A ; 800CC800
dw 0x10800005 ; 800CC804
dw 0x00000000 ; 800CC808
dw 0x0C033096 ; 800CC80C
dw 0x02A02021 ; 800CC810
dw 0x0803325D ; 800CC814
dw 0x00000000 ; 800CC818
dw 0x0C033041 ; 800CC81C
dw 0x02A02021 ; 800CC820
dw 0x0803325D ; 800CC824
dw 0x00000000 ; 800CC828
dw 0x0C005B33 ; 800CC82C
dw 0x24841C04 ; 800CC830
dw 0x3C04800D ; 800CC834
dw 0x24841C0C ; 800CC838
dw 0x0C005B33 ; 800CC83C
dw 0xA7A20038 ; 800CC840
dw 0x24050002 ; 800CC844
dw 0xA7A2003A ; 800CC848
dw 0x96A40024 ; 800CC84C
dw 0x0C032F10 ; 800CC850
dw 0x27A60038 ; 800CC854
dw 0x00401821 ; 800CC858
dw 0x10600005 ; 800CC85C
dw 0x24020001 ; 800CC860
dw 0x10620008 ; 800CC864
dw 0x00000000 ; 800CC868
dw 0x08033223 ; 800CC86C
dw 0x00000000 ; 800CC870
dw 0xAEA20048 ; 800CC874
dw 0x0C032FE3 ; 800CC878
dw 0x02A02021 ; 800CC87C
dw 0x08033223 ; 800CC880
dw 0x00000000 ; 800CC884
dw 0xAEA00048 ; 800CC888
dw 0x8AA80307 ; 800CC88C
dw 0x9AA80304 ; 800CC890
dw 0x8AA9030B ; 800CC894
dw 0x9AA90308 ; 800CC898
dw 0xAAA802F7 ; 800CC89C
dw 0xBAA802F4 ; 800CC8A0
dw 0xAAA902FB ; 800CC8A4
dw 0xBAA902F8 ; 800CC8A8
dw 0x8AA8030F ; 800CC8AC
dw 0x9AA8030C ; 800CC8B0
dw 0x8AA90313 ; 800CC8B4
dw 0x9AA90310 ; 800CC8B8
dw 0xAAA802FF ; 800CC8BC
dw 0xBAA802FC ; 800CC8C0
dw 0xAAA90303 ; 800CC8C4
dw 0xBAA90300 ; 800CC8C8
dw 0x8EA20048 ; 800CC8CC
dw 0x00000000 ; 800CC8D0
dw 0x104000D8 ; 800CC8D4
dw 0x00000000 ; 800CC8D8
dw 0x0C005C24 ; 800CC8DC
dw 0x24040010 ; 800CC8E0
dw 0x14400004 ; 800CC8E4
dw 0x3C0251EB ; 800CC8E8
dw 0x0C032FE3 ; 800CC8EC
dw 0x02A02021 ; 800CC8F0
dw 0x3C0251EB ; 800CC8F4
dw 0x8EA403A4 ; 800CC8F8
dw 0x3442851F ; 800CC8FC
dw 0x00820018 ; 800CC900
dw 0x000417C3 ; 800CC904
dw 0x00003810 ; 800CC908
dw 0x00071903 ; 800CC90C
dw 0x00621823 ; 800CC910
dw 0x00031040 ; 800CC914
dw 0x00431021 ; 800CC918
dw 0x000210C0 ; 800CC91C
dw 0x00431021 ; 800CC920
dw 0x00021040 ; 800CC924
dw 0x8EA303B0 ; 800CC928
dw 0x00822023 ; 800CC92C
dw 0x24630023 ; 800CC930
dw 0x0083202A ; 800CC934
dw 0x10800005 ; 800CC938
dw 0x00000000 ; 800CC93C
dw 0x0C033096 ; 800CC940
dw 0x02A02021 ; 800CC944
dw 0x08033256 ; 800CC948
dw 0x00000000 ; 800CC94C
dw 0x0C033041 ; 800CC950
dw 0x02A02021 ; 800CC954
dw 0x0C005C24 ; 800CC958
dw 0x24040010 ; 800CC95C
dw 0x14400004 ; 800CC960
dw 0x26A402F4 ; 800CC964
dw 0x240500B3 ; 800CC968
dw 0x0C00CA71 ; 800CC96C
dw 0x24060001 ; 800CC970
dw 0x86B302FC ; 800CC974
dw 0x86A202F4 ; 800CC978
dw 0x00000000 ; 800CC97C
dw 0x02629823 ; 800CC980
dw 0x02730018 ; 800CC984
dw 0x86B20300 ; 800CC988
dw 0x86A202F8 ; 800CC98C
dw 0x00001812 ; 800CC990
dw 0x02429023 ; 800CC994
dw 0x00000000 ; 800CC998
dw 0x02520018 ; 800CC99C
dw 0x0000A021 ; 800CC9A0
dw 0x86B002FE ; 800CC9A4
dw 0x86A202F6 ; 800CC9A8
dw 0x24170001 ; 800CC9AC
dw 0x02028023 ; 800CC9B0
dw 0x00005812 ; 800CC9B4
dw 0x0C0249C2 ; 800CC9B8
dw 0x006B2021 ; 800CC9BC
dw 0x26A402F4 ; 800CC9C0
dw 0x26A502FC ; 800CC9C4
dw 0x0C005BA1 ; 800CC9C8
dw 0x00408821 ; 800CC9CC
dw 0x0040B021 ; 800CC9D0
dw 0x02202021 ; 800CC9D4
dw 0x0C0250C2 ; 800CC9D8
dw 0x02002821 ; 800CC9DC
dw 0x02602021 ; 800CC9E0
dw 0x02402821 ; 800CC9E4
dw 0x0C0250C2 ; 800CC9E8
dw 0xA7A20018 ; 800CC9EC
dw 0x02A02021 ; 800CC9F0
dw 0x24050002 ; 800CC9F4
dw 0x00A03021 ; 800CC9F8
dw 0xA7A2001A ; 800CC9FC
dw 0x0C033179 ; 800CCA00
dw 0xA7A0001C ; 800CCA04
dw 0x02A02021 ; 800CCA08
dw 0x24050006 ; 800CCA0C
dw 0x0C033179 ; 800CCA10
dw 0x24060002 ; 800CCA14
dw 0x02A02021 ; 800CCA18
dw 0x2405000A ; 800CCA1C
dw 0x0C033179 ; 800CCA20
dw 0x24060002 ; 800CCA24
dw 0x02A02021 ; 800CCA28
dw 0x2405000E ; 800CCA2C
dw 0x0C033179 ; 800CCA30
dw 0x24060002 ; 800CCA34
dw 0x02A02021 ; 800CCA38
dw 0x02E02821 ; 800CCA3C
dw 0x0C033179 ; 800CCA40
dw 0x24060001 ; 800CCA44
dw 0x26940001 ; 800CCA48
dw 0x2A820008 ; 800CCA4C
dw 0x1440FFF9 ; 800CCA50
dw 0x26F70002 ; 800CCA54
dw 0x0000A021 ; 800CCA58
dw 0x2412004C ; 800CCA5C
dw 0x02A08821 ; 800CCA60
dw 0x02A08021 ; 800CCA64
dw 0xA7A00020 ; 800CCA68
dw 0xA7A00024 ; 800CCA6C
dw 0xA7A00010 ; 800CCA70
dw 0x8602033E ; 800CCA74
dw 0x00000000 ; 800CCA78
dw 0x02C20018 ; 800CCA7C
dw 0x00003812 ; 800CCA80
dw 0x00071303 ; 800CCA84
dw 0xA7A20012 ; 800CCA88
dw 0x8E220360 ; 800CCA8C
dw 0x00000000 ; 800CCA90
dw 0x02C20018 ; 800CCA94
dw 0x3C04800B ; 800CCA98
dw 0x2484B39C ; 800CCA9C
dw 0x27A50020 ; 800CCAA0
dw 0x26940001 ; 800CCAA4
dw 0x26310004 ; 800CCAA8
dw 0x00003812 ; 800CCAAC
dw 0x00071303 ; 800CCAB0
dw 0xA7A20014 ; 800CCAB4
dw 0x9602031C ; 800CCAB8
dw 0x26100002 ; 800CCABC
dw 0x0C006F23 ; 800CCAC0
dw 0xA7A20022 ; 800CCAC4
dw 0x27A40010 ; 800CCAC8
dw 0x02B22821 ; 800CCACC
dw 0x0C006F92 ; 800CCAD0
dw 0x24060001 ; 800CCAD4
dw 0x2A820011 ; 800CCAD8
dw 0x1440FFE5 ; 800CCADC
dw 0x26520008 ; 800CCAE0
dw 0x26A402F4 ; 800CCAE4
dw 0x0C006F23 ; 800CCAE8
dw 0x27A50018 ; 800CCAEC
dw 0x26B0004C ; 800CCAF0
dw 0x02002021 ; 800CCAF4
dw 0x02002821 ; 800CCAF8
dw 0x0C006F92 ; 800CCAFC
dw 0x24060011 ; 800CCB00
dw 0x0016B1C3 ; 800CCB04
dw 0x0C005C2F ; 800CCB08
dw 0x24040010 ; 800CCB0C
dw 0x24040010 ; 800CCB10
dw 0x02C21021 ; 800CCB14
dw 0x0C005C2F ; 800CCB18
dw 0xA7A20010 ; 800CCB1C
dw 0x26B20054 ; 800CCB20
dw 0x26B100D4 ; 800CCB24
dw 0x02002021 ; 800CCB28
dw 0x27A50010 ; 800CCB2C
dw 0x02C21021 ; 800CCB30
dw 0xA7A20012 ; 800CCB34
dw 0xA7B60014 ; 800CCB38
dw 0x8AA8004F ; 800CCB3C
dw 0x9AA8004C ; 800CCB40
dw 0x8AA90053 ; 800CCB44
dw 0x9AA90050 ; 800CCB48
dw 0xABA8002B ; 800CCB4C
dw 0xBBA80028 ; 800CCB50
dw 0xABA9002F ; 800CCB54
dw 0xBBA9002C ; 800CCB58
dw 0x0C005B40 ; 800CCB5C
dw 0x27A60030 ; 800CCB60
dw 0x0000A021 ; 800CCB64
dw 0x8BA8002B ; 800CCB68
dw 0x9BA80028 ; 800CCB6C
dw 0x8BA9002F ; 800CCB70
dw 0x9BA9002C ; 800CCB74
dw 0xAA280003 ; 800CCB78
dw 0xBA280000 ; 800CCB7C
dw 0xAA290007 ; 800CCB80
dw 0xBA290004 ; 800CCB84
dw 0x26310008 ; 800CCB88
dw 0x8A480003 ; 800CCB8C
dw 0x9A480000 ; 800CCB90
dw 0x8A490007 ; 800CCB94
dw 0x9A490004 ; 800CCB98
dw 0xAA280003 ; 800CCB9C
dw 0xBA280000 ; 800CCBA0
dw 0xAA290007 ; 800CCBA4
dw 0xBA290004 ; 800CCBA8
dw 0x8A280003 ; 800CCBAC
dw 0x9A280000 ; 800CCBB0
dw 0x8A290007 ; 800CCBB4
dw 0x9A290004 ; 800CCBB8
dw 0xABA8002B ; 800CCBBC
dw 0xBBA80028 ; 800CCBC0
dw 0xABA9002F ; 800CCBC4
dw 0xBBA9002C ; 800CCBC8
dw 0x26310008 ; 800CCBCC
dw 0x8BA80033 ; 800CCBD0
dw 0x9BA80030 ; 800CCBD4
dw 0x8BA90037 ; 800CCBD8
dw 0x9BA90034 ; 800CCBDC
dw 0xAA280003 ; 800CCBE0
dw 0xBA280000 ; 800CCBE4
dw 0xAA290007 ; 800CCBE8
dw 0xBA290004 ; 800CCBEC
dw 0x26310008 ; 800CCBF0
dw 0x02402021 ; 800CCBF4
dw 0x27A50010 ; 800CCBF8
dw 0x0C005B40 ; 800CCBFC
dw 0x02203021 ; 800CCC00
dw 0x8A280003 ; 800CCC04
dw 0x9A280000 ; 800CCC08
dw 0x8A290007 ; 800CCC0C
dw 0x9A290004 ; 800CCC10
dw 0xABA80033 ; 800CCC14
dw 0xBBA80030 ; 800CCC18
dw 0xABA90037 ; 800CCC1C
dw 0xBBA90034 ; 800CCC20
dw 0x26310008 ; 800CCC24
dw 0x26940001 ; 800CCC28
dw 0x2A820010 ; 800CCC2C
dw 0x1440FFCD ; 800CCC30
dw 0x26520008 ; 800CCC34
dw 0x8FBF0060 ; 800CCC38
dw 0x8FB7005C ; 800CCC3C
dw 0x8FB60058 ; 800CCC40
dw 0x8FB50054 ; 800CCC44
dw 0x8FB40050 ; 800CCC48
dw 0x8FB3004C ; 800CCC4C
dw 0x8FB20048 ; 800CCC50
dw 0x8FB10044 ; 800CCC54
dw 0x8FB00040 ; 800CCC58
dw 0x03E00008 ; 800CCC5C
dw 0x27BD0068 ; 800CCC60

View File

@ -1647,7 +1647,6 @@ overlay_bss group file("{{OBJ_DIR}}\{{OVERLAY}}_{{OVERLAY_SUFFIX}}_bss.bin")
include "{{OBJ_DIR}}\overlays\d01a\Okajima\blur.obj"
include "{{OBJ_DIR}}\overlays\s08c\Okajima\wall_spa.obj"
include "{{OBJ_DIR}}\overlays\d16e\Anime\animeconv\smoke.obj"
include "{{OBJ_DIR}}\overlays\{{OVERLAY}}\overlay2.obj"
include "{{OBJ_DIR}}\overlays\s08c\Okajima\plasma.obj"
include "{{OBJ_DIR}}\overlays\s08c\Okajima\blood_bl.obj"
include "{{OBJ_DIR}}\overlays\s03e\Takabe\spark2.obj"

View File

@ -10,18 +10,21 @@ typedef struct _PlasmaWork
int name;
MATRIX *f28;
MATRIX *f2C;
DG_PRIM *prim; // 30
SVECTOR f34; // 34
SVECTOR f3C; // 3C
int f44; // 44
int f48; // 48
char pad2[0x88]; // 4C
SVECTOR verts[68]; // D4
DG_PRIM *prim;
SVECTOR f34;
SVECTOR f3C;
int f44;
int f48;
SVECTOR f4C[17];
SVECTOR verts[68];
SVECTOR f2F4;
SVECTOR f2FC;
SVECTOR f304;
SVECTOR f30C;
char pad4[0x90];
char pad2[0x8];
short f31C[17];
short f33E[17];
int f360[17];
int f3A4;
int f3A8;
int f3AC;
@ -31,9 +34,11 @@ typedef struct _PlasmaWork
int f3BC;
} PlasmaWork;
#define EXEC_LEVEL 4
extern SVECTOR DG_ZeroVector_800AB39C;
extern int GV_Clock_800AB920;
extern int GM_CurrentMap_800AB9B0;
extern int GM_CurrentMap_800AB9B0;
#define EXEC_LEVEL 4
// Identical to UjiGetSvecs_800C39E8
int PlasmaGetSvecs_800CBBEC(char *opt, SVECTOR *svec)
@ -119,10 +124,58 @@ void PlasmaTexPacks_800CBCE8(PlasmaWork *work, POLY_FT4 *packs, int n_packs, DG_
}
}
#pragma INCLUDE_ASM("asm/overlays/s08c/s08c_plasma_800CBDA8.s")
void s08c_plasma_800CBDA8(PlasmaWork *, SVECTOR *, SVECTOR *);
void Plasma_800CBDA8(PlasmaWork *work, SVECTOR *arg1, SVECTOR *arg2)
{
int i;
void s08c_plasma_800CBF8C(PlasmaWork *work)
if (work->f3BC == 1)
{
for (i = 0; i < 5; i++)
{
work->f31C[i * 4] = work->f3B8 + GV_RandS_800170BC(32);
work->f33E[i * 4] = GV_RandU_80017090(4096);
work->f360[i * 4] = GV_RandU_80017090(4096);
}
}
else
{
for (i = 0; i < 5; i++)
{
work->f31C[i * 4] = GV_RandU_80017090(4096);
work->f33E[i * 4] = GV_RandU_80017090(4096);
work->f360[i * 4] = GV_RandU_80017090(4096);
}
}
if (work->f33E[8] < work->f33E[4])
{
work->f33E[4] = work->f33E[8];
}
if (work->f33E[12] < work->f33E[4])
{
work->f33E[4] = work->f33E[12];
}
if (work->f33E[12] < work->f33E[8])
{
work->f33E[8] = work->f33E[12];
}
work->f2F4 = *arg1;
work->f2FC = *arg2;
work->f4C[0] = work->f2F4;
work->f4C[16] = work->f2FC;
work->f33E[0] = 0;
work->f33E[16] = 4096;
work->f360[0] = 0;
work->f360[16] = 0;
}
void Plasma_800CBF8C(PlasmaWork *work)
{
int rnd;
@ -138,15 +191,328 @@ void s08c_plasma_800CBF8C(PlasmaWork *work)
work->f304 = work->f2F4;
work->f30C = work->f2FC;
s08c_plasma_800CBDA8(work, &work->f304, &work->f30C);
Plasma_800CBDA8(work, &work->f304, &work->f30C);
}
#pragma INCLUDE_ASM("asm/overlays/s08c/s08c_plasma_800CC104.s")
#pragma INCLUDE_ASM("asm/overlays/s08c/s08c_plasma_800CC258.s")
#pragma INCLUDE_ASM("asm/overlays/s08c/s08c_plasma_800CC5E4.s")
void Plasma_800CC104(PlasmaWork *work)
{
work->f31C[4] = (work->f31C[4] + GV_RandU_80017090(32)) & 0xFFF;
work->f33E[4] = (work->f33E[4] + GV_RandS_800170BC(64)) & 0xFFF;
work->f360[4] = (work->f360[4] + GV_RandS_800170BC(128)) & 0x7FF;
#pragma INCLUDE_ASM("asm/overlays/s08c/s08c_plasma_800CC67C.s")
void s08c_plasma_800CC67C(PlasmaWork *); // PlasmaAct_800CC67C
work->f31C[8] = (work->f31C[8] + GV_RandU_80017090(32)) & 0xFFF;
work->f33E[8] = (work->f33E[8] + GV_RandS_800170BC(64)) & 0xFFF;
work->f360[8] = (work->f360[8] + GV_RandS_800170BC(128)) & 0x7FF;
work->f31C[12] = (work->f31C[12] + GV_RandU_80017090(32)) & 0xFFF;
work->f33E[12] = (work->f33E[12] + GV_RandS_800170BC(64)) & 0xFFF;
work->f360[12] = (work->f360[12] + GV_RandS_800170BC(128)) & 0x7FF;
if (work->f33E[8] < work->f33E[4])
{
work->f33E[4] = work->f33E[8];
}
if (work->f33E[12] < work->f33E[4])
{
work->f33E[4] = work->f33E[12];
}
if (work->f33E[12] < work->f33E[8])
{
work->f33E[8] = work->f33E[12];
}
}
void Plasma_800CC258(PlasmaWork *work)
{
SVECTOR pos;
SVECTOR rot;
POLY_FT4 *packs;
packs = &work->prim->field_40_pBuffers[GV_Clock_800AB920]->poly_ft4;
if ((work->f3AC > 3) && (work->f3AC < 6))
{
if (work->f3AC == 4)
{
work->f2F4.vx += GV_RandS_800170BC(128);
work->f2F4.vy += GV_RandS_800170BC(128);
work->f2F4.vz += GV_RandS_800170BC(128);
}
pos.vx = 0;
pos.vy = work->f3B4;
pos.vz = 0;
if (work->f3BC == 1)
{
rot.vx = 0;
rot.vy = work->f3B8;
}
else
{
rot.vx = GV_RandU_80017090(4096);
rot.vy = GV_RandU_80017090(4096);
}
rot.vz = 0;
DG_SetPos2_8001BC8C(&DG_ZeroVector_800AB39C, &rot);
DG_PutVector_8001BE48(&pos, &pos, 1);
GV_AddVec3_80016D00(&work->f2FC, &pos, &work->f2FC);
}
else if ((GV_RandS_800170BC(32) == 0) && (work->f3AC != 0xFF))
{
PlasmaShadePacks_800CBCD8(packs, 128);
work->f2F4.vx += GV_RandS_800170BC(128);
work->f2F4.vy += GV_RandS_800170BC(128);
work->f2F4.vz += GV_RandS_800170BC(128);
work->f2FC.vx += GV_RandS_800170BC(1024);
work->f2FC.vy += GV_RandS_800170BC(1024);
work->f2FC.vz += GV_RandS_800170BC(1024);
}
else
{
PlasmaShadePacks_800CBCD8(packs, 80);
}
if (work->f3BC == 1)
{
work->f31C[4] += GV_RandS_800170BC(64);
work->f33E[4] += GV_RandS_800170BC(32);
work->f360[4] += GV_RandS_800170BC(32);
work->f31C[8] += GV_RandS_800170BC(64);
work->f33E[8] += GV_RandS_800170BC(32);
work->f360[8] += GV_RandS_800170BC(32);
work->f31C[12] += GV_RandS_800170BC(64);
work->f33E[12] += GV_RandS_800170BC(32);
work->f360[12] += GV_RandS_800170BC(32);
}
else
{
work->f31C[4] = work->f31C[0] + GV_RandU_80017090(512);
work->f33E[4] = GV_RandU_80017090(4096);
work->f360[4] = GV_RandU_80017090(4096) >> 2;
work->f31C[8] = work->f31C[4] + GV_RandU_80017090(512);
work->f33E[8] = GV_RandU_80017090(4096);
work->f360[8] = GV_RandU_80017090(4096);
work->f31C[12] = work->f31C[8] + GV_RandU_80017090(512);
work->f33E[12] = GV_RandU_80017090(4096);
work->f360[12] = GV_RandU_80017090(4096) >> 1;
}
if (work->f33E[8] < work->f33E[4])
{
work->f33E[4] = work->f33E[8];
}
if (work->f33E[12] < work->f33E[4])
{
work->f33E[4] = work->f33E[12];
}
if (work->f33E[12] < work->f33E[8])
{
work->f33E[8] = work->f33E[12];
}
}
void Plasma_800CC5E4(PlasmaWork *work, int arg1, int arg2)
{
int idx1, idx2;
idx1 = arg1 - arg2;
idx2 = arg1 + arg2;
work->f33E[arg1] = work->f33E[idx1] + (((work->f33E[idx2] - work->f33E[idx1]) * 3) >> 2);
work->f360[arg1] = work->f360[idx1] + ((work->f360[idx2] - work->f360[idx1]) >> 1);
work->f31C[arg1] = work->f31C[idx1] + ((work->f31C[idx2] - work->f31C[idx1]) >> 1);
}
void PlasmaAct_800CC67C(PlasmaWork *work)
{
SVECTOR sp10;
SVECTOR sp18;
SVECTOR sp20;
SVECTOR sp28;
SVECTOR sp30;
unsigned short sp38[2];
int dx, dy, dz;
int ang;
int len;
int i;
SVECTOR *base;
SVECTOR *verts;
GM_CurrentMap_800AB9B0 = work->map;
if (work->f3AC != 255)
{
if (work->f3A4 > work->f3A8)
{
GV_DestroyActor_800151C8(&work->actor);
}
if (work->f3AC != 5)
{
work->f2F4.vx = work->f28->t[0];
work->f2F4.vy = work->f28->t[1];
work->f2F4.vz = work->f28->t[2];
work->f2FC.vx = work->f2C->t[0];
work->f2FC.vy = work->f2C->t[1];
work->f2FC.vz = work->f2C->t[2];
}
}
work->f3A4++;
if (GV_RandU_80017090(512) == 0)
{
work->f3B0 = GV_RandS_800170BC(32);
}
switch (work->f3AC)
{
case 0:
case 4:
case 5:
Plasma_800CC258(work);
break;
case 1:
Plasma_800CC104(work);
break;
case 2:
if ((work->f3A4 % 70) < (work->f3B0 + 35))
{
Plasma_800CC258(work);
}
else
{
Plasma_800CC104(work);
}
break;
case 255:
sp38[0] = GV_StrCode_80016CCC("はじめ");
sp38[1] = GV_StrCode_80016CCC("やめ");
switch (Plasma_800CBC40(work->name, 2, sp38))
{
case 0:
work->f48 = 1;
Plasma_800CBF8C(work);
break;
case 1:
work->f48 = 0;
break;
}
work->f2F4 = work->f304;
work->f2FC = work->f30C;
if (work->f48 == 0)
{
return;
}
if (GV_RandU_80017090(16) == 0)
{
Plasma_800CBF8C(work);
}
if ((work->f3A4 % 50) < (work->f3B0 + 35))
{
Plasma_800CC258(work);
}
else
{
Plasma_800CC104(work);
}
if (GV_RandU_80017090(16) == 0)
{
GM_Sound_800329C4(&work->f2F4, 179, 1);
}
break;
}
dx = work->f2FC.vx - work->f2F4.vx;
dz = work->f2FC.vz - work->f2F4.vz;
dy = work->f2FC.vy - work->f2F4.vy;
ang = SquareRoot0(dx * dx + dz * dz);
len = GV_DiffVec3_80016E84(&work->f2F4, &work->f2FC);
sp18.vx = ratan2(ang, dy);
sp18.vy = ratan2(dx, dz);
sp18.vz = 0;
Plasma_800CC5E4(work, 2, 2);
Plasma_800CC5E4(work, 6, 2);
Plasma_800CC5E4(work, 10, 2);
Plasma_800CC5E4(work, 14, 2);
for (i = 0; i < 8; i++)
{
Plasma_800CC5E4(work, i * 2 + 1, 1);
}
sp20.vx = 0;
sp20.vz = 0;
sp10.vx = 0;
for (i = 0; i < 17; i++)
{
sp10.vy = (len * work->f33E[i]) >> 12;
sp10.vz = (len * work->f360[i]) >> 12;
sp20.vy = work->f31C[i];
DG_SetPos2_8001BC8C(&DG_ZeroVector_800AB39C, &sp20);
DG_PutVector_8001BE48(&sp10, &work->f4C[i], 1);
}
DG_SetPos2_8001BC8C(&work->f2F4, &sp18);
DG_PutVector_8001BE48(work->f4C, work->f4C, 17);
len >>= 7;
sp10.vx = len + GV_RandS_800170BC(16);
sp10.vy = len + GV_RandS_800170BC(16);
sp10.vz = len;
sp28 = work->f4C[0];
base = &work->f4C[1];
verts = work->verts;
GV_AddVec3_80016D00(&work->f4C[0], &sp10, &sp30);
for (i = 0; i < 16; i++)
{
*verts++ = sp28;
*verts = *base;
sp28 = *verts++;
*verts++ = sp30;
GV_AddVec3_80016D00(base, &sp10, verts);
sp30 = *verts++;
base++;
}
}
void PlasmaDie_800CCC64(PlasmaWork *work)
{
@ -256,7 +622,7 @@ int PlasmaGetResources_800CCE08(PlasmaWork *work, OBJECT *parent, int arg2, int
sp18.vy = work->f2C->t[1];
sp18.vz = work->f2C->t[2];
s08c_plasma_800CBDA8(work, &sp10, &sp18);
Plasma_800CBDA8(work, &sp10, &sp18);
work->f3A4 = 0;
return 0;
@ -279,7 +645,7 @@ int PlasmaGetResources_800CCF78(PlasmaWork *work, SVECTOR *arg1, SVECTOR *arg2,
return -1;
}
s08c_plasma_800CBDA8(work, arg1, arg2);
Plasma_800CBDA8(work, arg1, arg2);
return 0;
}
@ -303,7 +669,7 @@ int PlasmaGetResources_800CD040(PlasmaWork *work, SVECTOR *arg1, SVECTOR *arg2,
return -1;
}
s08c_plasma_800CBDA8(work, arg1, arg2);
Plasma_800CBDA8(work, arg1, arg2);
return 0;
}
@ -314,7 +680,7 @@ GV_ACT *NewPlasma_800CD110(int name, int where)
work = (PlasmaWork *)GV_NewActor_800150E4(EXEC_LEVEL, sizeof(PlasmaWork));
if (work != NULL)
{
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)s08c_plasma_800CC67C,
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)PlasmaAct_800CC67C,
(TActorFunction)PlasmaDie_800CCC64, "plasma.c");
if (PlasmaGetResources_800CCD6C(work, name, where) < 0)
@ -334,7 +700,7 @@ GV_ACT *NewPlasma_800CD1A4(OBJECT *parent, int arg1, int arg2, int arg3, int arg
work = (PlasmaWork *)GV_NewActor_800150E4(EXEC_LEVEL, sizeof(PlasmaWork));
if (work != NULL)
{
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)s08c_plasma_800CC67C,
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)PlasmaAct_800CC67C,
(TActorFunction)PlasmaDie_800CCC64, "plasma.c");
if (PlasmaGetResources_800CCE08(work, parent, arg1, arg2, arg3, arg4, arg5) < 0)
@ -354,7 +720,7 @@ GV_ACT *NewPlasma_800CD268(SVECTOR *arg0, SVECTOR *arg1, int arg2)
work = (PlasmaWork *)GV_NewActor_800150E4(EXEC_LEVEL, sizeof(PlasmaWork));
if (work != NULL)
{
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)s08c_plasma_800CC67C,
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)PlasmaAct_800CC67C,
(TActorFunction)PlasmaDie_800CCC64, "plasma.c");
if (PlasmaGetResources_800CCF78(work, arg0, arg1, arg2) < 0)
@ -374,7 +740,7 @@ GV_ACT *NewPlasma_800CD30C(SVECTOR *arg0, SVECTOR *arg1, int arg2, int arg3)
work = (PlasmaWork *)GV_NewActor_800150E4(EXEC_LEVEL, sizeof(PlasmaWork));
if (work != NULL)
{
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)s08c_plasma_800CC67C,
GV_SetNamedActor_8001514C(&work->actor, (TActorFunction)PlasmaAct_800CC67C,
(TActorFunction)PlasmaDie_800CCC64, "plasma.c");
if (PlasmaGetResources_800CD040(work, arg0, arg1, arg2, arg3) < 0)

View File

@ -1,4 +0,0 @@
#include "linker.h"
const char s08c_dword_800D1C04[] = "はじめ";
const char s08c_dword_800D1C0C[] = "やめ";

Binary file not shown.

Binary file not shown.