summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorColin Noga <Tempus@chronometry.ca>2012-09-21 20:43:21 -0500
committerColin Noga <Tempus@chronometry.ca>2012-09-21 20:43:21 -0500
commitd47a9ed57a826d60c37bfa8a4ae00ccaba0ed806 (patch)
treec3f6657118d71abcd1ce3b4584b3e0472841e53f /tools
parent8d0a306f0a526a76182c8d2b513d7a0441d6f466 (diff)
parent5654d5c0a056f9cfc99ac608d16aa0a601b997f5 (diff)
downloadkamek-d47a9ed57a826d60c37bfa8a4ae00ccaba0ed806.tar.gz
kamek-d47a9ed57a826d60c37bfa8a4ae00ccaba0ed806.zip
Merge branch 'level-select' of ssh://treeki.rustedlogic.net:30000/Kamek into level-select
Diffstat (limited to 'tools')
-rw-r--r--tools/UsedProfileAndSpriteList.txt160
-rw-r--r--tools/kamek.py35
2 files changed, 193 insertions, 2 deletions
diff --git a/tools/UsedProfileAndSpriteList.txt b/tools/UsedProfileAndSpriteList.txt
new file mode 100644
index 0000000..8011339
--- /dev/null
+++ b/tools/UsedProfileAndSpriteList.txt
@@ -0,0 +1,160 @@
+[Commented] 210 : TARZAN_ROPE : Pengi
+--- : MOVIE : Cut Scene
+--- : WM_BOARD : Shop Item
+--- : WM_DANCE_PAKKUN : HUD
+--- : WM_GHOST : Star Coin Screen
+--- : WM_MAP : Map
+--- : WM_PAKKUN : Captain Bowser: Clown Shot
+--- : WM_PLAYER : Player
+--- : WM_SINKSHIP : Song Prize
+--- : WM_SMALLCLOUD : Bridge Bowser: Dropped Bomb
+--- : WM_TOGEZO : Shop
+--- : WORLD_CAMERA : World Camera
+--- : WORLD_MAP : Koopatlas
+ 10 : WM_ANCHOR : Captain Bowser: Koopa Throw
+ 11 : WM_KOOPA_CASTLE : Make Your Own
+ 12 : WM_KURIBO : Challenge Star
+ 13 : JR_CLOWN_FOR_PLAYER : Captain Bowser: Clown Car
+ 14 : WM_ANTLION : Captain Bowser: Koopa Flamethrower
+ 15 : WM_KILLERBULLET : Sing Along
+ 16 : WM_CLOUD : Bridge Bowser: Bomb Drop
+ 17 : WM_KILLER : Song Block
+ 18 : WM_BOSS_IGGY : Bone Piece
+ 19 : WM_PUKU : Samurshai
+ 22 : WM_KINOKO_STAR : Pumpkin Goomba
+ 49 : AC_LIFT_SEESAW : Fake Star Coin
+ 79 : EN_HELPOS : Event Looper
+ 88 : EN_BOYON : Sprite Spawner
+ 89 : EN_REMOCON_TORIMOCHI : Sprite Swapper Timed
+107 : EN_LIFT_ROTATION_HALF : Message Box Manager
+152 : EN_BLUR : Message Block
+169 : EN_SLIP_PENGUIN : Magic Platform
+183 : EN_TARZANROPE : Meteor
+210 : TARZAN_ROPE : Topman
+213 : BRANCH : Captain Bowser
+239 : MIST_INTERMITTENT : Event Block
+244 : RIVER_MGR : Line God
+246 : TAG_THUNDER : Level Special
+250 : KAWANAGARE : Electric Line
+251 : SLOW_QUICK_TAG : Topman Boss
+273 : WM_KINOBALLOON : Palace Activator
+282 : EN_WALLINSECT : Mr Sun
+283 : WALLINSECT_MGR : Fuzzy Bear
+290 : EN_IWAO : Ramboo
+302 : EN_GAKE_NOKO : Wrench
+322 : EN_GHOST_JUGEM : Thwomp Boss
+324 : SHIP_WINDOW : Podouble
+332 : LIFT_TORIDE_ROLL : Effect Video
+350 : DUMMY_DOOR_PARENT : Fire Laser
+351 : DUMMY_DOOR_CHILD : Shy Guy
+410 : AC_BLOCK_GROUP : Mega Goomba
+XXX : AC_LIFT_ICE_SPRING : Balboa Wrench
+
+
+
+-- All Replaced Profiles --
+AC_BLOCK_GROUP
+AC_LIFT_ICE_SPRING
+AC_LIFT_SEESAW
+BRANCH
+DUMMY_DOOR_CHILD
+DUMMY_DOOR_PARENT
+EN_BLUR
+EN_BOYON
+EN_GAKE_NOKO
+EN_GHOST_JUGEM
+EN_HELPOS
+EN_IWAO
+EN_LIFT_ROTATION_HALF
+EN_REMOCON_TORIMOCHI
+EN_SLIP_PENGUIN
+EN_TARZANROPE
+EN_WALLINSECT
+JR_CLOWN_FOR_PLAYER
+KAWANAGARE
+LIFT_TORIDE_ROLL
+MIST_INTERMITTENT
+MOVIE
+RIVER_MGR
+SHIP_WINDOW
+SLOW_QUICK_TAG
+TAG_THUNDER
+TARZAN_ROPE
+WALLINSECT_MGR
+WM_ANCHOR
+WM_ANTLION
+WM_BOARD
+WM_BOSS_IGGY
+WM_CLOUD
+WM_DANCE_PAKKUN
+WM_GHOST
+WM_KILLER
+WM_KILLERBULLET
+WM_KINOBALLOON
+WM_KINOKO_STAR
+WM_KOOPA_CASTLE
+WM_KURIBO
+WM_MAP
+WM_PAKKUN
+WM_PLAYER
+WM_PUKU
+WM_PUKU
+WM_SINKSHIP
+WM_SMALLCLOUD
+WM_TOGEZO
+WORLD_CAMERA
+WORLD_MAP
+
+
+
+-- World Map Processes Free for Use: --
+WM_ANTLION_MNG
+WM_BOSS_BASE
+WM_BOSS_KAMECK
+WM_BOSS_LARRY
+WM_BOSS_LEMMY
+WM_BOSS_LUDWIG
+WM_BOSS_MORTON
+WM_BOSS_ROY
+WM_BOSS_WENDY
+WM_BROS
+WM_BUBBLE
+WM_CANNON
+WM_CASTLE
+WM_COURSE
+WM_CS_SEQ_MNG
+WM_CS_W3_PALM
+WM_DIRECTOR
+WM_DOKAN
+WM_DOKANROUTE
+WM_GRID
+WM_HANACHAN
+WM_IBARA
+WM_ISLAND
+WM_JUGEM
+WM_KINOKO_1UP
+WM_KINOKO_BASE
+WM_KINOKO_RED
+WM_KINOPIO
+WM_KOOPAJR
+WM_KOOPASHIP
+WM_MANTA
+WM_NOTE
+WM_PAKKUNHEAD
+WM_PEACH
+WM_PEACH_CASTLE
+WM_SANDPILLAR
+WM_START
+WM_STOP
+WM_SUBPLAYER
+WM_SURRENDER
+WM_SWITCH
+WM_TERESA
+WM_TEST
+WM_TEST2
+WM_TORIDE
+WM_TOWER
+WM_TREASURESHIP
+WM_YOGANPILLAR
+WORLD_SELECT
+WORLD_SELECT_GUIDE
diff --git a/tools/kamek.py b/tools/kamek.py
index ee67a5a..a82740f 100644
--- a/tools/kamek.py
+++ b/tools/kamek.py
@@ -35,10 +35,11 @@ show_cmd = False
delete_temp = True
override_config_file = None
only_build = None
+fast_hack = False
def parse_cmd_options():
- global use_rels, use_mw, use_wine, show_cmd, delete_temp, only_build
+ global use_rels, use_mw, use_wine, show_cmd, delete_temp, only_build, fast_hack
global override_config_file, gcc_type, gcc_path, mw_path
if '--no-rels' in sys.argv:
@@ -56,7 +57,9 @@ def parse_cmd_options():
if '--keep-temp' in sys.argv:
delete_temp = False
-
+ if '--fast-hack' in sys.argv:
+ fast_hack = True
+
only_build = []
@@ -408,6 +411,11 @@ class KamekBuilder(object):
self._moduleFiles = []
+
+ if fast_hack:
+ fast_cpp_path = os.path.join(self._configTempDir, 'fasthack.cpp')
+ fast_cpp = open(fast_cpp_path, 'w')
+
for m in self.project.modules:
for normal_sourcefile in m.data['source_files']:
print_debug('Compiling %s : %s' % (m.moduleName, normal_sourcefile))
@@ -421,6 +429,11 @@ class KamekBuilder(object):
# todo: better extension detection
if sourcefile.endswith('.s') or sourcefile.endswith('.S'):
command = as_command
+ elif sourcefile.endswith('.cpp') and fast_hack:
+ fast_cpp.write('//\n// %s\n//\n\n' % sourcefile)
+ fast_cpp.write(open(sourcefile, 'r').read())
+ fast_cpp.write('\n')
+ continue
else:
command = cc_command
@@ -440,6 +453,24 @@ class KamekBuilder(object):
self._moduleFiles.append(objfile)
+ if fast_hack:
+ fast_cpp.close()
+
+ print_debug('Fast compilation!!')
+ objfile = os.path.join(self._configTempDir, 'fasthack.o')
+
+ new_command = cc_command + ['-c', '-o', objfile, fast_cpp_path]
+ if show_cmd:
+ print_debug(new_command)
+
+ errorVal = subprocess.call(new_command)
+ if errorVal != 0:
+ print 'BUILD FAILED!'
+ print 'compiler returned %d - an error occurred while compiling the fast hack' % errorVal
+ sys.exit(1)
+
+ self._moduleFiles.append(objfile)
+
print_debug('Compilation complete')