;--------------------------------------------------------
; 孵化
;--------------------------------------------------------
1e1648: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
1e164c: e1a06000 mov r6, r0
1e1650: e6bf0071 sxth r0, r1
1e1654: e3a05000 mov r5, #0
1e1658: e59f12c4 ldr r1, [pc, #708] ; 0x1e1924
1e165c: e3a04001 mov r4, #1
1e1660: e1d120f0 ldrsh r2, [r1]
1e1664: e1520000 cmp r2, r0
1e1668: 01a07005 moveq r7, r5
1e166c: 0a00000b beq 0x1e16a0
1e1670: e1d120f2 ldrsh r2, [r1, #2]
1e1674: e1520000 cmp r2, r0
1e1678: 01a07004 moveq r7, r4
1e167c: 0a000007 beq 0x1e16a0
1e1680: e1d120f4 ldrsh r2, [r1, #4]
1e1684: e1520000 cmp r2, r0
1e1688: 03a07002 moveq r7, #2
1e168c: 0a000003 beq 0x1e16a0
1e1690: e1d110f6 ldrsh r1, [r1, #6]
1e1694: e1510000 cmp r1, r0
1e1698: 03a07003 moveq r7, #3
1e169c: 13a070ff movne r7, #255 ; 0xff
; スキルの抽選 1
1e16a0: e3a00064 mov r0, #100 ; 0x64
1e16a4: e5c67000 strb r7, [r6]
1e16a8: eb04a598 bl 0x30ad10 ; r0 ← 乱数 0〜99
1e16ac: e59f3274 ldr r3, [pc, #628] ; 0x1e1928
1e16b0: e1a01000 mov r1, r0
1e16b4: e0672287 rsb r2, r7, r7, lsl #5
1e16b8: e3a00000 mov r0, #0
1e16bc: e0833002 add r3, r3, r2
1e16c0: e7d32000 ldrb r2, [r3, r0]
1e16c4: e1520001 cmp r2, r1
1e16c8: da000003 ble 0x1e16dc
1e16cc: e3520000 cmp r2, #0
1e16d0: 0a000001 beq 0x1e16dc
1e16d4: e20000ff and r0, r0, #255 ; 0xff
1e16d8: ea000004 b 0x1e16f0
1e16dc: e2800001 add r0, r0, #1
1e16e0: e350001f cmp r0, #31
1e16e4: e0411002 sub r1, r1, r2
1e16e8: bafffff4 blt 0x1e16c0
1e16ec: e1a00005 mov r0, r5
1e16f0: e5c60001 strb r0, [r6, #1]
; 系統の抽選 1
1e16f4: e3a00064 mov r0, #100 ; 0x64
1e16f8: eb04a584 bl 0x30ad10 ; r0 ← 乱数 0〜99
1e16fc: e59f3228 ldr r3, [pc, #552] ; 0x1e192c
1e1700: e087c107 add ip, r7, r7, lsl #2
1e1704: e08c2187 add r2, ip, r7, lsl #3
1e1708: e3a01000 mov r1, #0
1e170c: e0833002 add r3, r3, r2
1e1710: e7d32001 ldrb r2, [r3, r1]
1e1714: e1520000 cmp r2, r0
1e1718: da000003 ble 0x1e172c
1e171c: e3520000 cmp r2, #0
1e1720: 0a000001 beq 0x1e172c
1e1724: e20100ff and r0, r1, #255 ; 0xff
1e1728: ea000004 b 0x1e1740
1e172c: e2811001 add r1, r1, #1
1e1730: e351000d cmp r1, #13
1e1734: e0400002 sub r0, r0, r2
1e1738: bafffff4 blt 0x1e1710
1e173c: e1a00005 mov r0, r5
1e1740: e5c60002 strb r0, [r6, #2]
; プラス値の抽選 1
1e1744: e3a00064 mov r0, #100 ; 0x64
1e1748: eb04a570 bl 0x30ad10 ; r0 ← 乱数 0〜99
1e174c: e59f21dc ldr r2, [pc, #476] ; 0x1e1930
1e1750: e1a01000 mov r1, r0
1e1754: e3a00000 mov r0, #0
1e1758: e0823207 add r3, r2, r7, lsl #4
1e175c: e7d32000 ldrb r2, [r3, r0]
1e1760: e1520001 cmp r2, r1
1e1764: da000003 ble 0x1e1778 ; (境界値) <= (乱数値)
1e1768: e3520000 cmp r2, #0
1e176c: 0a000001 beq 0x1e1778
1e1770: e20000ff and r0, r0, #255 ; 0xff
1e1774: ea000004 b 0x1e178c
1e1778: e2800001 add r0, r0, #1
1e177c: e3500010 cmp r0, #16
1e1780: e0411002 sub r1, r1, r2
1e1784: bafffff4 blt 0x1e175c
1e1788: e1a00005 mov r0, r5
1e178c: e5c60003 strb r0, [r6, #3]
1e1790: e5865004 str r5, [r6, #4]
; モンスターの列挙
1e1794: e5d6a002 ldrb sl, [r6, #2]
1e1798: e3a00f96 mov r0, #600 ; 0x258
1e179c: eb05ac6f bl 0x34c960
1e17a0: e1b09000 movs r9, r0
1e17a4: e320f000 nop {0}
1e17a8: 0a00003b beq 0x1e189c
1e17ac: e59f1180 ldr r1, [pc, #384] ; 0x1e1934
1e17b0: e08a018a add r0, sl, sl, lsl #3
1e17b4: e3a08000 mov r8, #0
1e17b8: e3a05001 mov r5, #1
1e17bc: e0804001 add r4, r0, r1
1e17c0: e1a00005 mov r0, r5
1e17c4: eb04efea bl 0x31d774 ; r0 ← 種族データ offset
1e17c8: e1d000b6 ldrh r0, [r0, #6]
1e17cc: e3570000 cmp r7, #0
1e17d0: e200000f and r0, r0, #15
1e17d4: 0a000006 beq 0x1e17f4
1e17d8: e3570001 cmp r7, #1
1e17dc: 0a000007 beq 0x1e1800
1e17e0: e3570002 cmp r7, #2
1e17e4: 0a000008 beq 0x1e180c
1e17e8: e3570003 cmp r7, #3
1e17ec: 1a00000c bne 0x1e1824
1e17f0: ea000009 b 0x1e181c
; 0: しろい
1e17f4: e3500003 cmp r0, #3
1e17f8: 8a00001e bhi 0x1e1878
1e17fc: ea000008 b 0x1e1824
; 1: ぎんの
1e1800: e3500006 cmp r0, #6
1e1804: 8a00001b bhi 0x1e1878
1e1808: ea000005 b 0x1e1824
; 2: きんの
1e180c: e2400004 sub r0, r0, #4
1e1810: e3500004 cmp r0, #4
1e1814: 2a000017 bcs 0x1e1878
1e1818: ea000001 b 0x1e1824
; 3: にじの
1e181c: e3500006 cmp r0, #6
1e1820: 3a000014 bcc 0x1e1878
1e1824: e1a00005 mov r0, r5
1e1828: eb04efd1 bl 0x31d774 ; r0 ← 種族データ offset
1e182c: e1d000b6 ldrh r0, [r0, #6]
1e1830: e3100901 tst r0, #16384 ; 0x4000
1e1834: 0a00000f beq 0x1e1878 ; タマゴ属性がない場合、飛ばす
1e1838: e1a00005 mov r0, r5
1e183c: eb04efcc bl 0x31d774 ; r0 ← 種族データ offset
1e1840: e1d000b6 ldrh r0, [r0, #6]
1e1844: e1a00c00 lsl r0, r0, #24
1e1848: e1a01e20 lsr r1, r0, #28
1e184c: e3a00000 mov r0, #0
1e1850: e7d42000 ldrb r2, [r4, r0]
1e1854: e1520001 cmp r2, r1
1e1858: 1a000003 bne 0x1e186c
; 系統が一致した場合
1e185c: e0890088 add r0, r9, r8, lsl #1
1e1860: e2888001 add r8, r8, #1
1e1864: e1c050b0 strh r5, [r0]
1e1868: ea000002 b 0x1e1878
1e186c: e2800001 add r0, r0, #1
1e1870: e3500009 cmp r0, #9
1e1874: bafffff5 blt 0x1e1850
1e1878: e2855001 add r5, r5, #1
1e187c: e3550b01 cmp r5, #1024 ; 0x400
1e1880: baffffce blt 0x1e17c0
; モンスターの抽選
1e1884: e1a00008 mov r0, r8
1e1888: eb04a520 bl 0x30ad10 ; r0 ← 乱数 0〜(r0-1)
1e188c: e0890080 add r0, r9, r0, lsl #1
1e1890: e1d040f0 ldrsh r4, [r0]
1e1894: e1a00009 mov r0, r9
1e1898: eb05b04c bl 0x34d9d0
1e189c: e1c640b8 strh r4, [r6, #8]
; ?
1e18a0: e5d60003 ldrb r0, [r6, #3]
1e18a4: e59f108c ldr r1, [pc, #140] ; 0x1e1938
1e18a8: e0814080 add r4, r1, r0, lsl #1
1e18ac: e5d40001 ldrb r0, [r4, #1]
1e18b0: e3500001 cmp r0, #1
1e18b4: 95d40000 ldrbls r0, [r4]
1e18b8: 9a000003 bls 0x1e18cc
1e18bc: eb04a513 bl 0x30ad10 ; r0 ← 乱数 0〜(r0-1)
1e18c0: e5d41000 ldrb r1, [r4]
1e18c4: e0800001 add r0, r0, r1
1e18c8: e20000ff and r0, r0, #255 ; 0xff
1e18cc: e5c6000a strb r0, [r6, #10]
; プラス値の抽選
1e18d0: e5d60003 ldrb r0, [r6, #3]
1e18d4: e59f1060 ldr r1, [pc, #96] ; 0x1e193c
1e18d8: e0814080 add r4, r1, r0, lsl #1
1e18dc: e5d40001 ldrb r0, [r4, #1]
1e18e0: e3500001 cmp r0, #1
1e18e4: 95d40000 ldrbls r0, [r4]
1e18e8: 9a000003 bls 0x1e18fc
1e18ec: eb04a507 bl 0x30ad10 ; r0 ← 乱数 0〜(r0-1)
1e18f0: e5d41000 ldrb r1, [r4]
1e18f4: e0800001 add r0, r0, r1
1e18f8: e20000ff and r0, r0, #255 ; 0xff
1e18fc: e5c6000b strb r0, [r6, #11]
; スキルの抽選
1e1900: e5d64001 ldrb r4, [r6, #1]
1e1904: e3a00004 mov r0, #4
1e1908: eb04a500 bl 0x30ad10 ; r0 ← 乱数 0〜(r0-1)
1e190c: e59f102c ldr r1, [pc, #44] ; 0x1e1940
1e1910: e0811184 add r1, r1, r4, lsl #3
1e1914: e0810080 add r0, r1, r0, lsl #1
1e1918: e1d000b0 ldrh r0, [r0]
1e191c: e1c600bc strh r0, [r6, #12]
1e1920: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
1e1924: 0055896c
1e1928: 004fe1ac
1e192c: 004fe228
1e1930: 004fe25c
1e1934: 004fe29c
1e1938: 004fe311
1e193c: 004fe331
1e1940: 004fe352