Add rstl::binary_find

Including CAnimData::GetBoundingBox
This commit is contained in:
Henrique Gemignani Passos Lima 2022-12-05 23:35:31 +02:00
parent 960b828260
commit e4a864880b
No known key found for this signature in database
GPG Key ID: E224F951761145F8
19 changed files with 232 additions and 87 deletions

View File

@ -1720,7 +1720,7 @@ sub_802edef0:
/* 802EDF08 002EAE68 7C 9E 23 78 */ mr r30, r4
/* 802EDF0C 002EAE6C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802EDF10 002EAE70 7C 7D 1B 78 */ mr r29, r3
/* 802EDF14 002EAE74 4B D3 C8 3D */ bl sub_8002a750
/* 802EDF14 002EAE74 4B D3 C8 3D */ bl "__lt__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802EDF18 002EAE78 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802EDF1C 002EAE7C 40 82 00 28 */ bne lbl_802EDF44
/* 802EDF20 002EAE80 7F A3 EB 78 */ mr r3, r29

View File

@ -136,7 +136,7 @@ lbl_802F7D60:
/* 802F7D60 002F4CC0 7F A5 EB 78 */ mr r5, r29
/* 802F7D64 002F4CC4 38 7C 00 01 */ addi r3, r28, 1
/* 802F7D68 002F4CC8 38 9F 00 10 */ addi r4, r31, 0x10
/* 802F7D6C 002F4CCC 4B D3 29 BD */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 802F7D6C 002F4CCC 4B D3 29 BD */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802F7D70 002F4CD0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802F7D74 002F4CD4 40 82 00 10 */ bne lbl_802F7D84
/* 802F7D78 002F4CD8 7F FE FB 78 */ mr r30, r31
@ -153,7 +153,7 @@ lbl_802F7D88:
/* 802F7D9C 002F4CFC 7F A4 EB 78 */ mr r4, r29
/* 802F7DA0 002F4D00 38 7C 00 01 */ addi r3, r28, 1
/* 802F7DA4 002F4D04 38 BE 00 10 */ addi r5, r30, 0x10
/* 802F7DA8 002F4D08 4B D3 29 81 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 802F7DA8 002F4D08 4B D3 29 81 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802F7DAC 002F4D0C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802F7DB0 002F4D10 41 82 00 08 */ beq lbl_802F7DB8
lbl_802F7DB4:
@ -999,14 +999,14 @@ lbl_802F890C:
/* 802F890C 002F586C 7F C4 F3 78 */ mr r4, r30
/* 802F8910 002F5870 38 7D 00 01 */ addi r3, r29, 1
/* 802F8914 002F5874 38 BF 00 10 */ addi r5, r31, 0x10
/* 802F8918 002F5878 4B D3 1E 11 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 802F8918 002F5878 4B D3 1E 11 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802F891C 002F587C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802F8920 002F5880 7C 7B 1B 78 */ mr r27, r3
/* 802F8924 002F5884 40 82 00 34 */ bne lbl_802F8958
/* 802F8928 002F5888 7F C5 F3 78 */ mr r5, r30
/* 802F892C 002F588C 38 7D 00 01 */ addi r3, r29, 1
/* 802F8930 002F5890 38 9F 00 10 */ addi r4, r31, 0x10
/* 802F8934 002F5894 4B D3 1D F5 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 802F8934 002F5894 4B D3 1D F5 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802F8938 002F5898 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802F893C 002F589C 40 82 00 1C */ bne lbl_802F8958
/* 802F8940 002F58A0 93 FC 00 00 */ stw r31, 0(r28)
@ -1311,4 +1311,3 @@ lbl_803D6E28:
# ROM: 0x3D3E28
.asciz "??(??)"
.balign 4

View File

@ -900,7 +900,7 @@ lbl_8034B1A8:
/* 8034B1A8 00348108 7F A5 EB 78 */ mr r5, r29
/* 8034B1AC 0034810C 38 7C 00 01 */ addi r3, r28, 1
/* 8034B1B0 00348110 38 9F 00 10 */ addi r4, r31, 0x10
/* 8034B1B4 00348114 4B CD F5 75 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034B1B4 00348114 4B CD F5 75 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034B1B8 00348118 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034B1BC 0034811C 40 82 00 10 */ bne lbl_8034B1CC
/* 8034B1C0 00348120 7F FE FB 78 */ mr r30, r31
@ -917,7 +917,7 @@ lbl_8034B1D0:
/* 8034B1E4 00348144 7F A4 EB 78 */ mr r4, r29
/* 8034B1E8 00348148 38 7C 00 01 */ addi r3, r28, 1
/* 8034B1EC 0034814C 38 BE 00 10 */ addi r5, r30, 0x10
/* 8034B1F0 00348150 4B CD F5 39 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034B1F0 00348150 4B CD F5 39 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034B1F4 00348154 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034B1F8 00348158 41 82 00 08 */ beq lbl_8034B200
lbl_8034B1FC:
@ -1364,7 +1364,7 @@ lbl_8034B7B8:
/* 8034B7B8 00348718 7F A5 EB 78 */ mr r5, r29
/* 8034B7BC 0034871C 38 7C 00 01 */ addi r3, r28, 1
/* 8034B7C0 00348720 38 9F 00 10 */ addi r4, r31, 0x10
/* 8034B7C4 00348724 4B CD EF 65 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034B7C4 00348724 4B CD EF 65 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034B7C8 00348728 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034B7CC 0034872C 40 82 00 10 */ bne lbl_8034B7DC
/* 8034B7D0 00348730 7F FE FB 78 */ mr r30, r31
@ -1381,7 +1381,7 @@ lbl_8034B7E0:
/* 8034B7F4 00348754 7F A4 EB 78 */ mr r4, r29
/* 8034B7F8 00348758 38 7C 00 01 */ addi r3, r28, 1
/* 8034B7FC 0034875C 38 BE 00 10 */ addi r5, r30, 0x10
/* 8034B800 00348760 4B CD EF 29 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034B800 00348760 4B CD EF 29 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034B804 00348764 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034B808 00348768 41 82 00 08 */ beq lbl_8034B810
lbl_8034B80C:
@ -1881,7 +1881,7 @@ lbl_8034BEC0:
/* 8034BEC0 00348E20 7F A5 EB 78 */ mr r5, r29
/* 8034BEC4 00348E24 38 7C 00 01 */ addi r3, r28, 1
/* 8034BEC8 00348E28 38 9F 00 10 */ addi r4, r31, 0x10
/* 8034BECC 00348E2C 4B CD E8 5D */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034BECC 00348E2C 4B CD E8 5D */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034BED0 00348E30 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034BED4 00348E34 40 82 00 10 */ bne lbl_8034BEE4
/* 8034BED8 00348E38 7F FE FB 78 */ mr r30, r31
@ -1942,7 +1942,7 @@ lbl_8034BF90:
/* 8034BF90 00348EF0 7F A4 EB 78 */ mr r4, r29
/* 8034BF94 00348EF4 38 7C 00 01 */ addi r3, r28, 1
/* 8034BF98 00348EF8 38 BF 00 10 */ addi r5, r31, 0x10
/* 8034BF9C 00348EFC 4B CD E7 8D */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034BF9C 00348EFC 4B CD E7 8D */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034BFA0 00348F00 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034BFA4 00348F04 41 82 00 10 */ beq lbl_8034BFB4
/* 8034BFA8 00348F08 7F FE FB 78 */ mr r30, r31
@ -2960,14 +2960,14 @@ lbl_8034CD94:
/* 8034CD94 00349CF4 7F C4 F3 78 */ mr r4, r30
/* 8034CD98 00349CF8 38 7D 00 01 */ addi r3, r29, 1
/* 8034CD9C 00349CFC 38 BF 00 10 */ addi r5, r31, 0x10
/* 8034CDA0 00349D00 4B CD D9 89 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034CDA0 00349D00 4B CD D9 89 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034CDA4 00349D04 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034CDA8 00349D08 7C 7B 1B 78 */ mr r27, r3
/* 8034CDAC 00349D0C 40 82 00 34 */ bne lbl_8034CDE0
/* 8034CDB0 00349D10 7F C5 F3 78 */ mr r5, r30
/* 8034CDB4 00349D14 38 7D 00 01 */ addi r3, r29, 1
/* 8034CDB8 00349D18 38 9F 00 10 */ addi r4, r31, 0x10
/* 8034CDBC 00349D1C 4B CD D9 6D */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034CDBC 00349D1C 4B CD D9 6D */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034CDC0 00349D20 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034CDC4 00349D24 40 82 00 1C */ bne lbl_8034CDE0
/* 8034CDC8 00349D28 93 FC 00 00 */ stw r31, 0(r28)
@ -3290,14 +3290,14 @@ lbl_8034D24C:
/* 8034D24C 0034A1AC 7F C4 F3 78 */ mr r4, r30
/* 8034D250 0034A1B0 38 7D 00 01 */ addi r3, r29, 1
/* 8034D254 0034A1B4 38 BF 00 10 */ addi r5, r31, 0x10
/* 8034D258 0034A1B8 4B CD D4 D1 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034D258 0034A1B8 4B CD D4 D1 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034D25C 0034A1BC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034D260 0034A1C0 7C 7B 1B 78 */ mr r27, r3
/* 8034D264 0034A1C4 40 82 00 34 */ bne lbl_8034D298
/* 8034D268 0034A1C8 7F C5 F3 78 */ mr r5, r30
/* 8034D26C 0034A1CC 38 7D 00 01 */ addi r3, r29, 1
/* 8034D270 0034A1D0 38 9F 00 10 */ addi r4, r31, 0x10
/* 8034D274 0034A1D4 4B CD D4 B5 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8034D274 0034A1D4 4B CD D4 B5 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8034D278 0034A1D8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8034D27C 0034A1DC 40 82 00 1C */ bne lbl_8034D298
/* 8034D280 0034A1E0 93 FC 00 00 */ stw r31, 0(r28)

View File

@ -1459,27 +1459,27 @@ sub_8002a708:
/* 8002A708 00027668 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002A70C 0002766C 7C 08 02 A6 */ mflr r0
/* 8002A710 00027670 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002A714 00027674 48 00 00 15 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8002A714 00027674 48 00 00 15 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8002A718 00027678 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002A71C 0002767C 7C 08 03 A6 */ mtlr r0
/* 8002A720 00027680 38 21 00 10 */ addi r1, r1, 0x10
/* 8002A724 00027684 4E 80 00 20 */ blr
.global "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
"__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>":
.global "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
"__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>":
/* 8002A728 00027688 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002A72C 0002768C 7C 08 02 A6 */ mflr r0
/* 8002A730 00027690 7C 83 23 78 */ mr r3, r4
/* 8002A734 00027694 7C A4 2B 78 */ mr r4, r5
/* 8002A738 00027698 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002A73C 0002769C 48 00 00 15 */ bl sub_8002a750
/* 8002A73C 0002769C 48 00 00 15 */ bl "__lt__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8002A740 000276A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002A744 000276A4 7C 08 03 A6 */ mtlr r0
/* 8002A748 000276A8 38 21 00 10 */ addi r1, r1, 0x10
/* 8002A74C 000276AC 4E 80 00 20 */ blr
.global sub_8002a750
sub_8002a750:
.global "__lt__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
"__lt__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>":
/* 8002A750 000276B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002A754 000276B4 7C 08 02 A6 */ mflr r0
/* 8002A758 000276B8 90 01 00 14 */ stw r0, 0x14(r1)
@ -6115,7 +6115,7 @@ lbl_8002E960:
/* 8002E978 0002B8D8 7F E4 FB 78 */ mr r4, r31
/* 8002E97C 0002B8DC 38 61 00 08 */ addi r3, r1, 8
/* 8002E980 0002B8E0 38 A1 00 0C */ addi r5, r1, 0xc
/* 8002E984 0002B8E4 48 00 00 D1 */ bl sub_8002ea54
/* 8002E984 0002B8E4 48 00 00 D1 */ bl "find_by_key<Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>>__4rstlFRCQ24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8002E988 0002B8E8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8002E98C 0002B8EC 38 61 00 0C */ addi r3, r1, 0xc
/* 8002E990 0002B8F0 48 30 F1 51 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
@ -6171,8 +6171,8 @@ lbl_8002EA40:
/* 8002EA4C 0002B9AC 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8002EA50 0002B9B0 4E 80 00 20 */ blr
.global sub_8002ea54
sub_8002ea54:
.global "find_by_key<Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>>__4rstlFRCQ24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
"find_by_key<Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>>__4rstlFRCQ24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>":
/* 8002EA54 0002B9B4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8002EA58 0002B9B8 7C 08 02 A6 */ mflr r0
/* 8002EA5C 0002B9BC 7C A6 2B 78 */ mr r6, r5
@ -6193,15 +6193,15 @@ sub_8002ea54:
/* 8002EA98 0002B9F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002EA9C 0002B9FC 90 01 00 18 */ stw r0, 0x18(r1)
/* 8002EAA0 0002BA00 91 01 00 20 */ stw r8, 0x20(r1)
/* 8002EAA4 0002BA04 48 00 00 19 */ bl sub_8002eabc
/* 8002EAA4 0002BA04 48 00 00 19 */ bl "binary_find<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>"
/* 8002EAA8 0002BA08 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8002EAAC 0002BA0C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8002EAB0 0002BA10 7C 08 03 A6 */ mtlr r0
/* 8002EAB4 0002BA14 38 21 00 30 */ addi r1, r1, 0x30
/* 8002EAB8 0002BA18 4E 80 00 20 */ blr
.global sub_8002eabc
sub_8002eabc:
.global "binary_find<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>"
"binary_find<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>":
/* 8002EABC 0002BA1C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8002EAC0 0002BA20 7C 08 02 A6 */ mflr r0
/* 8002EAC4 0002BA24 90 01 00 44 */ stw r0, 0x44(r1)
@ -6220,7 +6220,7 @@ sub_8002eabc:
/* 8002EAF8 0002BA58 38 81 00 10 */ addi r4, r1, 0x10
/* 8002EAFC 0002BA5C 91 01 00 0C */ stw r8, 0xc(r1)
/* 8002EB00 0002BA60 90 01 00 10 */ stw r0, 0x10(r1)
/* 8002EB04 0002BA64 48 00 25 0D */ bl sub_80031010
/* 8002EB04 0002BA64 48 00 25 0D */ bl "lower_bound<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>"
/* 8002EB08 0002BA68 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 8002EB0C 0002BA6C 3B E0 00 00 */ li r31, 0
/* 8002EB10 0002BA70 80 1C 00 00 */ lwz r0, 0(r28)
@ -6229,7 +6229,7 @@ sub_8002eabc:
/* 8002EB1C 0002BA7C 41 82 00 1C */ beq lbl_8002EB38
/* 8002EB20 0002BA80 7F C3 F3 78 */ mr r3, r30
/* 8002EB24 0002BA84 7F A4 EB 78 */ mr r4, r29
/* 8002EB28 0002BA88 48 00 00 41 */ bl sub_8002eb68
/* 8002EB28 0002BA88 48 00 00 41 */ bl "__cl__Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>"
/* 8002EB2C 0002BA8C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8002EB30 0002BA90 40 82 00 08 */ bne lbl_8002EB38
/* 8002EB34 0002BA94 3B E0 00 01 */ li r31, 1
@ -6249,12 +6249,12 @@ lbl_8002EB4C:
/* 8002EB60 0002BAC0 38 21 00 40 */ addi r1, r1, 0x40
/* 8002EB64 0002BAC4 4E 80 00 20 */ blr
.global sub_8002eb68
sub_8002eb68:
.global "__cl__Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>"
"__cl__Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>":
/* 8002EB68 0002BAC8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002EB6C 0002BACC 7C 08 02 A6 */ mflr r0
/* 8002EB70 0002BAD0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002EB74 0002BAD4 4B FF BB B5 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 8002EB74 0002BAD4 4B FF BB B5 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8002EB78 0002BAD8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002EB7C 0002BADC 7C 08 03 A6 */ mtlr r0
/* 8002EB80 0002BAE0 38 21 00 10 */ addi r1, r1, 0x10
@ -8906,8 +8906,8 @@ lbl_80030FFC:
/* 80031008 0002DF68 38 21 00 10 */ addi r1, r1, 0x10
/* 8003100C 0002DF6C 4E 80 00 20 */ blr
.global sub_80031010
sub_80031010:
.global "lower_bound<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>"
"lower_bound<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>":
/* 80031010 0002DF70 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80031014 0002DF74 7C 08 02 A6 */ mflr r0
/* 80031018 0002DF78 90 01 00 34 */ stw r0, 0x34(r1)
@ -8922,7 +8922,7 @@ sub_80031010:
/* 8003103C 0002DF9C 90 81 00 08 */ stw r4, 8(r1)
/* 80031040 0002DFA0 38 81 00 08 */ addi r4, r1, 8
/* 80031044 0002DFA4 90 01 00 0C */ stw r0, 0xc(r1)
/* 80031048 0002DFA8 48 00 07 F9 */ bl sub_80031840
/* 80031048 0002DFA8 48 00 07 F9 */ bl "distance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>"
/* 8003104C 0002DFAC 80 1F 00 00 */ lwz r0, 0(r31)
/* 80031050 0002DFB0 7C 7D 1B 78 */ mr r29, r3
/* 80031054 0002DFB4 90 01 00 10 */ stw r0, 0x10(r1)
@ -8935,11 +8935,11 @@ lbl_8003105C:
/* 8003106C 0002DFCC 7C 9C 0E 70 */ srawi r28, r4, 1
/* 80031070 0002DFD0 90 01 00 10 */ stw r0, 0x10(r1)
/* 80031074 0002DFD4 7F 84 E3 78 */ mr r4, r28
/* 80031078 0002DFD8 48 00 07 09 */ bl sub_80031780
/* 80031078 0002DFD8 48 00 07 09 */ bl "advance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,i>__4rstlFRQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>i"
/* 8003107C 0002DFDC 80 81 00 10 */ lwz r4, 0x10(r1)
/* 80031080 0002DFE0 7F 63 DB 78 */ mr r3, r27
/* 80031084 0002DFE4 7F 45 D3 78 */ mr r5, r26
/* 80031088 0002DFE8 48 00 00 55 */ bl sub_800310dc
/* 80031088 0002DFE8 48 00 00 55 */ bl "__cl__Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>CFRCQ24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8003108C 0002DFEC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80031090 0002DFF0 41 82 00 24 */ beq lbl_800310B4
/* 80031094 0002DFF4 80 01 00 10 */ lwz r0, 0x10(r1)
@ -8963,12 +8963,12 @@ lbl_800310B8:
/* 800310D4 0002E034 38 21 00 30 */ addi r1, r1, 0x30
/* 800310D8 0002E038 4E 80 00 20 */ blr
.global sub_800310dc
sub_800310dc:
.global "__cl__Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>CFRCQ24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
"__cl__Q24rstl209pair_sorter_finder<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>>CFRCQ24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>":
/* 800310DC 0002E03C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800310E0 0002E040 7C 08 02 A6 */ mflr r0
/* 800310E4 0002E044 90 01 00 14 */ stw r0, 0x14(r1)
/* 800310E8 0002E048 4B FF 96 41 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 800310E8 0002E048 4B FF 96 41 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800310EC 0002E04C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800310F0 0002E050 7C 08 03 A6 */ mtlr r0
/* 800310F4 0002E054 38 21 00 10 */ addi r1, r1, 0x10
@ -9036,7 +9036,7 @@ sub_800311c8:
/* 800311C8 0002E128 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800311CC 0002E12C 7C 08 02 A6 */ mflr r0
/* 800311D0 0002E130 90 01 00 14 */ stw r0, 0x14(r1)
/* 800311D4 0002E134 4B FF 95 55 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 800311D4 0002E134 4B FF 95 55 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800311D8 0002E138 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800311DC 0002E13C 7C 08 03 A6 */ mtlr r0
/* 800311E0 0002E140 38 21 00 10 */ addi r1, r1, 0x10
@ -9466,15 +9466,15 @@ lbl_8003176C:
/* 80031778 0002E6D8 38 21 00 10 */ addi r1, r1, 0x10
/* 8003177C 0002E6DC 4E 80 00 20 */ blr
.global sub_80031780
sub_80031780:
.global "advance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,i>__4rstlFRQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>i"
"advance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,i>__4rstlFRQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>i":
/* 80031780 0002E6E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80031784 0002E6E4 7C 08 02 A6 */ mflr r0
/* 80031788 0002E6E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003178C 0002E6EC 38 A1 00 0C */ addi r5, r1, 0xc
/* 80031790 0002E6F0 88 01 00 08 */ lbz r0, 8(r1)
/* 80031794 0002E6F4 98 01 00 0C */ stb r0, 0xc(r1)
/* 80031798 0002E6F8 48 00 00 95 */ bl sub_8003182c
/* 80031798 0002E6F8 48 00 00 95 */ bl "__advance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,i>__4rstlFRQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>iQ24rstl26random_access_iterator_tag"
/* 8003179C 0002E6FC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800317A0 0002E700 7C 08 03 A6 */ mtlr r0
/* 800317A4 0002E704 38 21 00 10 */ addi r1, r1, 0x10
@ -9524,16 +9524,16 @@ sub_80031818:
/* 80031824 0002E784 90 03 00 00 */ stw r0, 0(r3)
/* 80031828 0002E788 4E 80 00 20 */ blr
.global sub_8003182c
sub_8003182c:
.global "__advance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,i>__4rstlFRQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>iQ24rstl26random_access_iterator_tag"
"__advance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,i>__4rstlFRQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>iQ24rstl26random_access_iterator_tag":
/* 8003182C 0002E78C 1C 04 00 28 */ mulli r0, r4, 0x28
/* 80031830 0002E790 80 83 00 00 */ lwz r4, 0(r3)
/* 80031834 0002E794 7C 04 02 14 */ add r0, r4, r0
/* 80031838 0002E798 90 03 00 00 */ stw r0, 0(r3)
/* 8003183C 0002E79C 4E 80 00 20 */ blr
.global sub_80031840
sub_80031840:
.global "distance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>"
"distance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>":
/* 80031840 0002E7A0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80031844 0002E7A4 7C 08 02 A6 */ mflr r0
/* 80031848 0002E7A8 90 01 00 24 */ stw r0, 0x24(r1)
@ -9546,7 +9546,7 @@ sub_80031840:
/* 80031864 0002E7C4 90 C1 00 10 */ stw r6, 0x10(r1)
/* 80031868 0002E7C8 98 E1 00 0C */ stb r7, 0xc(r1)
/* 8003186C 0002E7CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80031870 0002E7D0 48 00 00 9D */ bl sub_8003190c
/* 80031870 0002E7D0 48 00 00 9D */ bl "__distance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl26random_access_iterator_tag"
/* 80031874 0002E7D4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80031878 0002E7D8 7C 08 03 A6 */ mtlr r0
/* 8003187C 0002E7DC 38 21 00 20 */ addi r1, r1, 0x20
@ -9592,8 +9592,8 @@ sub_80031884:
/* 80031904 0002E864 38 21 00 20 */ addi r1, r1, 0x20
/* 80031908 0002E868 4E 80 00 20 */ blr
.global sub_8003190c
sub_8003190c:
.global "__distance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl26random_access_iterator_tag"
"__distance<Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>>__4rstlFQ24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl293const_pointer_iterator<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl133vector<Q24rstl89pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,6CAABox>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl26random_access_iterator_tag":
/* 8003190C 0002E86C 80 A3 00 00 */ lwz r5, 0(r3)
/* 80031910 0002E870 3C 60 66 66 */ lis r3, 0x66666667@ha
/* 80031914 0002E874 80 04 00 00 */ lwz r0, 0(r4)

View File

@ -1590,7 +1590,7 @@ lbl_800B8ED8:
/* 800B8ED8 000B5E38 7F A5 EB 78 */ mr r5, r29
/* 800B8EDC 000B5E3C 38 7C 00 01 */ addi r3, r28, 1
/* 800B8EE0 000B5E40 38 9F 00 10 */ addi r4, r31, 0x10
/* 800B8EE4 000B5E44 4B F7 18 45 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 800B8EE4 000B5E44 4B F7 18 45 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800B8EE8 000B5E48 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800B8EEC 000B5E4C 40 82 00 10 */ bne lbl_800B8EFC
/* 800B8EF0 000B5E50 7F FE FB 78 */ mr r30, r31
@ -1607,7 +1607,7 @@ lbl_800B8F00:
/* 800B8F14 000B5E74 7F A4 EB 78 */ mr r4, r29
/* 800B8F18 000B5E78 38 7C 00 01 */ addi r3, r28, 1
/* 800B8F1C 000B5E7C 38 BE 00 10 */ addi r5, r30, 0x10
/* 800B8F20 000B5E80 4B F7 18 09 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 800B8F20 000B5E80 4B F7 18 09 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800B8F24 000B5E84 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800B8F28 000B5E88 41 82 00 08 */ beq lbl_800B8F30
lbl_800B8F2C:
@ -4409,14 +4409,14 @@ lbl_800BB62C:
/* 800BB62C 000B858C 7F C4 F3 78 */ mr r4, r30
/* 800BB630 000B8590 38 7D 00 01 */ addi r3, r29, 1
/* 800BB634 000B8594 38 BF 00 10 */ addi r5, r31, 0x10
/* 800BB638 000B8598 4B F6 F0 F1 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 800BB638 000B8598 4B F6 F0 F1 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800BB63C 000B859C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800BB640 000B85A0 7C 7B 1B 78 */ mr r27, r3
/* 800BB644 000B85A4 40 82 00 34 */ bne lbl_800BB678
/* 800BB648 000B85A8 7F C5 F3 78 */ mr r5, r30
/* 800BB64C 000B85AC 38 7D 00 01 */ addi r3, r29, 1
/* 800BB650 000B85B0 38 9F 00 10 */ addi r4, r31, 0x10
/* 800BB654 000B85B4 4B F6 F0 D5 */ bl "__cl__Q24rstl140select1st<Q24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>>CFRCQ24rstl119pair<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>>"
/* 800BB654 000B85B4 4B F6 F0 D5 */ bl "__cl__Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>CFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800BB658 000B85B8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800BB65C 000B85BC 40 82 00 1C */ bne lbl_800BB678
/* 800BB660 000B85C0 93 FC 00 00 */ stw r31, 0(r28)

View File

@ -32,7 +32,7 @@ LIBS = [
"MetroidPrime/CCredits",
"MetroidPrime/CSplashScreen",
["MetroidPrime/CInstruction", True],
"MetroidPrime/CAnimData",
["MetroidPrime/CAnimData", False],
"MetroidPrime/Factories/CCharacterFactory",
"MetroidPrime/Factories/CAssetFactory",
["MetroidPrime/Tweaks/CTweakPlayer", False],

View File

@ -5,8 +5,10 @@
class CAnimTreeNode : public IAnimReader {
public:
virtual CCharAnimTime VGetTimeRemaining() const;
virtual CAnimTreeEffectiveContribution VGetContributionOfHighestInfluence() const = 0;
CAnimTreeEffectiveContribution GetContributionOfHighestInfluence() const {
return VGetContributionOfHighestInfluence();
}
};
#endif // _CANIMTREENODE

View File

@ -74,7 +74,7 @@ public:
const CParticleDatabase& GetParticleDB() const { return x120_particleDB; }
// SetIsAnimating__9CAnimDataFb
// SetAnimDir__9CAnimDataFQ29CAnimData8EAnimDir
// GetBoundingBox__9CAnimDataCFv
CAABox GetBoundingBox() const;
// GetBoundingBox__9CAnimDataCFRC12CTransform4f
// GetLocatorSegId__9CAnimDataCFRCQ24rstl66basic_string
// ResetPOILists__9CAnimDataFv

View File

@ -24,6 +24,7 @@ public:
};
const CPASDatabase& GetPASDatabase() const { return x30_pasDatabase; }
const rstl::vector< rstl::pair< rstl::string, CAABox > >& GetAnimBBoxList() const { return x88_aabbs; }
private:
ushort x0_tableCount;

View File

@ -195,5 +195,6 @@ private:
int x184_scanCompletionRateSecond;
CStaticInterference x188_staticIntf;
};
CHECK_SIZEOF(CPlayerState, 0x198)
#endif // _CPLAYERSTATE

View File

@ -1,6 +1,8 @@
#ifndef _RSTL_ALGORITHM
#define _RSTL_ALGORITHM
#include "rstl/functional.hpp"
#include "rstl/pair.hpp"
#include "rstl/pointer_iterator.hpp"
namespace rstl {
@ -67,7 +69,7 @@ void __sort3(T& a, T& b, T& c, Cmp comp) {
template < typename It, class Cmp >
void sort(It first, It last, Cmp cmp) {
int count = last - first; // use distance?
int count = last - first; // use distance?
if (count > 1) {
if (count <= 20) {
__insertion_sort(first, last, cmp);
@ -93,6 +95,87 @@ void sort(It first, It last, Cmp cmp) {
}
}
template < typename It, typename T, typename Cmp >
It lower_bound(It start, It end, const T& value, Cmp cmp) {
int dist = distance(start, end);
It it = start;
while (dist > 0) {
it = start;
int halfDist = dist / 2;
advance(it, halfDist);
if (cmp(*it, value)) {
start = it;
++start;
dist = (dist - halfDist) - 1;
} else {
dist = halfDist;
}
}
return start;
}
template < typename It, typename T, typename Cmp >
It binary_find(It start, It end, const T& value, Cmp cmp) {
It lower = lower_bound(start, end, value, cmp);
bool found = false;
if (lower != end && !cmp(value, *lower)) {
found = true;
}
if (found) {
return lower;
} else {
return end;
}
}
template < typename T, typename Cmp >
class pair_sorter_finder;
template < typename K, typename V, typename Cmp >
class pair_sorter_finder< pair< K, V >, Cmp > {
public:
typedef K key_type;
Cmp cmp;
pair_sorter_finder(const Cmp& cmp) : cmp(cmp) {}
bool operator()(const K& a, const pair< K, V >& b) const;
/* {
return cmp(a, b.first);
}*/
bool operator()(const pair< K, V >& a, const K& b) const;
/* {
return cmp(a.first, b);
}*/
};
template < typename K, typename V, typename Cmp >
bool pair_sorter_finder< pair< K, V >, Cmp >::operator()(const K& a, const pair< K, V >& b) const {
return cmp(a, b.first);
}
template < typename K, typename V, typename Cmp >
bool pair_sorter_finder< pair< K, V >, Cmp >::operator()(const pair< K, V >& a, const K& b) const {
return cmp(a.first, b);
}
template < typename T >
typename T::const_iterator
find_by_key(const T& container,
const typename select1st< typename T::value_type >::value_type& key);
template < typename T >
typename T::const_iterator
find_by_key(const T& container,
const typename select1st< typename T::value_type >::value_type& key) {
typedef typename select1st< typename T::value_type >::value_type K;
return binary_find(container.begin(), container.end(), key,
pair_sorter_finder< typename T::value_type, less< K > >(rstl::less< K >()));
}
} // namespace rstl
#endif // _RSTL_ALGORITHM

View File

@ -0,0 +1,18 @@
#ifndef _RSTL_FUNCTIONAL
#define _RSTL_FUNCTIONAL
namespace rstl {
template < typename P >
struct identity {
const P& operator()(const P& it) const { return it; }
};
template < typename T >
struct less {
bool operator()(const T& a, const T& b) const { return a < b; }
};
} // namespace rstl
#endif // _RSTL_FUNCTIONAL

View File

@ -25,6 +25,18 @@ inline typename It::difference_type distance(It first, It last) {
return __distance(first, last, typename It::iterator_category());
}
template < typename It, typename S >
void __advance(It& it, S count, forward_iterator_tag) {
while (count > 0) {
++it;
}
}
template < typename It, typename S >
inline void advance(It& it, S count) {
return __advance(it, count, typename It::iterator_category());
}
} // namespace rstl
#endif // _RSTL_ITERATOR

View File

@ -15,6 +15,20 @@ public:
L first;
R second;
};
template < typename P >
struct select1st {
const P& operator()(const P& it) const { return it; }
};
template < typename K, typename V >
struct select1st< pair< K, V > > {
typedef K value_type;
const K& operator()(const pair< K, V >& it) const { return it.first; }
};
} // namespace rstl
#endif // _RSTL_PAIR

View File

@ -132,6 +132,10 @@ inline typename It::difference_type __distance(It first, It last, random_access_
return last - first;
}
template < typename It, typename S >
inline void __advance(It& it, S count, random_access_iterator_tag) {
it += count;
}
template < typename T >
struct iterator_traits {};

View File

@ -3,30 +3,12 @@
#include "types.h"
#include "rstl/functional.hpp"
#include "rstl/iterator.hpp"
#include "rstl/pair.hpp"
#include "rstl/rmemory_allocator.hpp"
#include "rstl/iterator.hpp"
namespace rstl {
template < typename P >
struct select1st {
const P& operator()(const P& it) const { return it; }
};
template < typename K, typename V >
struct select1st< pair< K, V > > {
const K& operator()(const pair< K, V >& it) const { return it.first; }
};
template < typename P >
struct identity {
const P& operator()(const P& it) const { return it; }
};
template < typename T >
struct less {
bool operator()(const T& a, const T& b) const { return a < b; }
};
enum node_color {
kNC_Red,
@ -52,9 +34,7 @@ private:
: mLeft(left), mRight(right), mParent(parent), mColor(color) {
construct(get_value(), value);
}
~node() {
get_value()->~P();
}
~node() { get_value()->~P(); }
P* get_value() { return reinterpret_cast< P* >(&mValue); }
const P* get_value() const { return reinterpret_cast< const P* >(&mValue); }
@ -93,7 +73,7 @@ public:
// TODO why is this bool here?
const_iterator(node* node, const header* header, bool b)
: mNode(node), mHeader(header)/*, x8_(b)*/ {}
: mNode(node), mHeader(header) /*, x8_(b)*/ {}
const P* operator->() const { return mNode->get_value(); }
const P* operator*() const { return mNode->get_value(); }
@ -191,7 +171,7 @@ public:
}
return iterator(needle, &x8_header, false);
}
iterator erase(iterator it) {
node* node = it.get_node();
++it;
@ -245,7 +225,9 @@ private:
void rebalance(node* n) { rbtree_rebalance(&x8_header, n); }
node* rebalance_for_erase(node* n) { return static_cast<node*>(rbtree_rebalance_for_erase(&x8_header, n)); }
node* rebalance_for_erase(node* n) {
return static_cast< node* >(rbtree_rebalance_for_erase(&x8_header, n));
}
};
static bool kUnknownValueNewRoot = true;

View File

@ -107,6 +107,7 @@ public:
int _eq_helper(const basic_string& other) const;
bool operator==(const basic_string& other) const;
bool operator<(const basic_string& other) const;
const char* data() const { return x0_ptr; }
};
@ -116,6 +117,11 @@ bool basic_string< _CharTp, Traits, Alloc >::operator==(const basic_string& othe
return _eq_helper(other) == 0;
}
template < typename _CharTp, typename Traits, typename Alloc >
bool basic_string< _CharTp, Traits, Alloc >::operator<(const basic_string& other) const {
return _eq_helper(other) < 0;
}
// template <>
// const char basic_string<char>::mNull = 0;
// template <>

View File

@ -36,6 +36,7 @@ protected:
public:
typedef pointer_iterator< T, vector< T, Alloc >, Alloc > iterator;
typedef const_pointer_iterator< T, vector< T, Alloc >, Alloc > const_iterator;
typedef T value_type;
iterator begin() { return iterator(xc_items); }
const_iterator begin() const { return const_iterator(xc_items); }

View File

@ -0,0 +1,22 @@
#include "MetroidPrime/CAnimData.hpp"
#include "Kyoto/Animation/CAnimTreeNode.hpp"
#include "rstl/algorithm.hpp"
CAABox CAnimData::GetBoundingBox() const {
const rstl::vector< rstl::pair< rstl::string, CAABox > >& aabbList =
xc_charInfo.GetAnimBBoxList();
if (aabbList.size() > 0) {
CAnimTreeEffectiveContribution contrib = x1f8_animRoot->GetContributionOfHighestInfluence();
rstl::string name = contrib.GetPrimitiveName();
rstl::vector< rstl::pair< rstl::string, CAABox > >::const_iterator search =
rstl::find_by_key(aabbList, rstl::string(name));
if (search != aabbList.end()) {
return search->second;
}
}
return x108_aabb;
}