mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
68 lines
1.1 KiB
Python
68 lines
1.1 KiB
Python
|
#!/usr/bin/env python2
|
||
|
|
||
|
"""Dump /arc/ppark.narc.
|
||
|
|
||
|
This is an unmaintained one-shot script, only included in the repo for
|
||
|
reference.
|
||
|
|
||
|
"""
|
||
|
|
||
|
|
||
|
import sys
|
||
|
from struct import pack, unpack
|
||
|
import binascii
|
||
|
|
||
|
import pokedex.db
|
||
|
from pokedex.db.tables import PalPark
|
||
|
|
||
|
types = [
|
||
|
'',
|
||
|
'grass',
|
||
|
'fire',
|
||
|
'water',
|
||
|
'bug',
|
||
|
'normal',
|
||
|
'poison',
|
||
|
'electric',
|
||
|
'ground',
|
||
|
'fighting',
|
||
|
'psychic',
|
||
|
'rock',
|
||
|
'ghost',
|
||
|
'ice',
|
||
|
'steel',
|
||
|
'dragon',
|
||
|
'dark',
|
||
|
'flying',
|
||
|
]
|
||
|
|
||
|
areas = {
|
||
|
1: 'forest',
|
||
|
2: 'mountain',
|
||
|
3: 'field',
|
||
|
0x200: 'pond',
|
||
|
0x400: 'sea',
|
||
|
}
|
||
|
|
||
|
session = pokedex.db.connect()()
|
||
|
|
||
|
with open(sys.argv[1], "rb") as f:
|
||
|
f.seek(0x3C)
|
||
|
for i in range(0xb8e // 6):
|
||
|
data = f.read(6)
|
||
|
area, score, rate, t1, t2 = unpack("<HBBBB", data)
|
||
|
|
||
|
print(i+1, binascii.hexlify(data).decode(),
|
||
|
areas[area], score, rate, types[t1], types[t2])
|
||
|
|
||
|
obj = PalPark()
|
||
|
obj.species_id = i+1
|
||
|
obj.area = areas[area]
|
||
|
obj.base_score = score
|
||
|
obj.rate = rate
|
||
|
|
||
|
session.add(obj)
|
||
|
|
||
|
|
||
|
session.commit()
|