diff --git a/platinum.us/filesys.csv b/platinum.us/filesys.csv index 483db5ae68..6c3347db88 100644 --- a/platinum.us/filesys.csv +++ b/platinum.us/filesys.csv @@ -173,7 +173,7 @@ res/prebuilt/battle/graphic/batt_bg.narc,/battle/graphic/batt_bg.narc res/prebuilt/battle/graphic/batt_obj.narc,/battle/graphic/batt_obj.narc res/prebuilt/battle/graphic/pl_b_plist_gra.narc,/battle/graphic/pl_b_plist_gra.narc res/prebuilt/battle/graphic/pl_batt_bg.narc,/battle/graphic/pl_batt_bg.narc -res/prebuilt/battle/graphic/pl_batt_obj.narc,/battle/graphic/pl_batt_obj.narc +res/graphics/battle/sprites.narc,/battle/graphic/pl_batt_obj.narc res/prebuilt/battle/graphic/vs_demo_gra.narc,/battle/graphic/vs_demo_gra.narc res/battle/moves/anim_scripts.narc,/wazaeffect/we.arc res/battle/scripts/common_anims/anim_subscripts.narc,/wazaeffect/we_sub.narc diff --git a/platinum.us/filesys.sha1 b/platinum.us/filesys.sha1 index c313d2e346..b750194641 100644 --- a/platinum.us/filesys.sha1 +++ b/platinum.us/filesys.sha1 @@ -172,7 +172,7 @@ d672202157109fb1bb293070b5d35787b2b2b6d3 *res/prebuilt/battle/graphic/batt_bg.na c9baf056c8646bc0bc826bbc98f5cbd439643f3d *res/prebuilt/battle/graphic/batt_obj.narc 036b81fe61c6347100c73b2c23d28da5abc7626c *res/prebuilt/battle/graphic/pl_b_plist_gra.narc 2fafdda86f7f740e2843c95382f08dfac35fa64f *res/prebuilt/battle/graphic/pl_batt_bg.narc -db5906303178da70f6b6c852990df560fb4dfeba *res/prebuilt/battle/graphic/pl_batt_obj.narc +db5906303178da70f6b6c852990df560fb4dfeba *res/graphics/battle/sprites.narc 955ce80b532be2184c62c36a6cb9d6b68c4669dd *res/prebuilt/battle/graphic/vs_demo_gra.narc c7e601f3c145dd3c36c6f1deee1f63d526be3c37 *res/battle/moves/anim_scripts.narc 30bb77e76c27874bc8ff923b33492595f1a377e2 *res/battle/scripts/common_anims/anim_subscripts.narc diff --git a/res/graphics/battle/ball_throws/bait.png b/res/graphics/battle/ball_throws/bait.png new file mode 100644 index 0000000000..ba39174ae3 Binary files /dev/null and b/res/graphics/battle/ball_throws/bait.png differ diff --git a/res/graphics/battle/ball_throws/bait_anim.json b/res/graphics/battle/ball_throws/bait_anim.json new file mode 100644 index 0000000000..e4266320ed --- /dev/null +++ b/res/graphics/battle/ball_throws/bait_anim.json @@ -0,0 +1,52 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 2, + "frameCount": 5, + "sequences": [{ + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 2, + "resultId": 0 + }, { + "frameDelay": 2, + "resultId": 1 + }, { + "frameDelay": 2, + "resultId": 2 + }, { + "frameDelay": 2, + "resultId": 3 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 0 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }], + "resultCount": 4, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/ball_throws/cherish_ball.png b/res/graphics/battle/ball_throws/cherish_ball.png new file mode 100644 index 0000000000..8b268dafa9 Binary files /dev/null and b/res/graphics/battle/ball_throws/cherish_ball.png differ diff --git a/res/graphics/battle/ball_throws/dive_ball.png b/res/graphics/battle/ball_throws/dive_ball.png new file mode 100644 index 0000000000..777c3e315c Binary files /dev/null and b/res/graphics/battle/ball_throws/dive_ball.png differ diff --git a/res/graphics/battle/ball_throws/dusk_ball.png b/res/graphics/battle/ball_throws/dusk_ball.png new file mode 100644 index 0000000000..22918600a9 Binary files /dev/null and b/res/graphics/battle/ball_throws/dusk_ball.png differ diff --git a/res/graphics/battle/ball_throws/great_ball.png b/res/graphics/battle/ball_throws/great_ball.png new file mode 100644 index 0000000000..51011ea4fb Binary files /dev/null and b/res/graphics/battle/ball_throws/great_ball.png differ diff --git a/res/graphics/battle/ball_throws/heal_ball.png b/res/graphics/battle/ball_throws/heal_ball.png new file mode 100644 index 0000000000..5043eb768e Binary files /dev/null and b/res/graphics/battle/ball_throws/heal_ball.png differ diff --git a/res/graphics/battle/ball_throws/luxury_ball.png b/res/graphics/battle/ball_throws/luxury_ball.png new file mode 100644 index 0000000000..22f1564827 Binary files /dev/null and b/res/graphics/battle/ball_throws/luxury_ball.png differ diff --git a/res/graphics/battle/ball_throws/master_ball.png b/res/graphics/battle/ball_throws/master_ball.png new file mode 100644 index 0000000000..5476cff82c Binary files /dev/null and b/res/graphics/battle/ball_throws/master_ball.png differ diff --git a/res/graphics/battle/ball_throws/meson.build b/res/graphics/battle/ball_throws/meson.build new file mode 100644 index 0000000000..699b32d2b6 --- /dev/null +++ b/res/graphics/battle/ball_throws/meson.build @@ -0,0 +1,61 @@ +shared_cell = files('shared_cell.json') +mud_cell = files('mud_cell.json') +mud = files('mud.png') +balls = files( + 'poke_ball.png', + 'master_ball.png', + 'ultra_ball.png', + 'great_ball.png', + 'safari_ball.png', + 'net_ball.png', + 'dive_ball.png', + 'nest_ball.png', + 'repeat_ball.png', + 'timer_ball.png', + 'luxury_ball.png', + 'premier_ball.png', + 'quick_ball.png', + 'dusk_ball.png', + 'heal_ball.png', + 'cherish_ball.png', + 'park_ball.png', + 'bait.png', + 'unused_poke_ball.png', +) + +battle_sprites += [ + nclr_gen.process( + balls, + mud, + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + + ncgr_lz_gen.process( + balls, + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', shared_cell[0].full_path() + ], + ), + + ncgr_cell_lz_gen.process( + mud, + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncer_lz_gen.process(shared_cell, mud_cell, preserve_path_from: base_directory), + + nanr_lz_gen.process( + files( + 'mud_anim.json', + 'quick_dusk_heal_anim.json', + 'bait_anim.json', + 'shared_anim.json', + 'unused_poke_ball_anim.json', + ), + preserve_path_from: base_directory, + ), +] diff --git a/res/graphics/battle/ball_throws/mud.png b/res/graphics/battle/ball_throws/mud.png new file mode 100644 index 0000000000..24c2321b5f Binary files /dev/null and b/res/graphics/battle/ball_throws/mud.png differ diff --git a/res/graphics/battle/ball_throws/mud_anim.json b/res/graphics/battle/ball_throws/mud_anim.json new file mode 100644 index 0000000000..a218a9b012 --- /dev/null +++ b/res/graphics/battle/ball_throws/mud_anim.json @@ -0,0 +1,70 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 2, + "frameCount": 8, + "sequences": [{ + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 2, + "resultId": 0 + }, { + "frameDelay": 2, + "resultId": 1 + }, { + "frameDelay": 2, + "resultId": 2 + }, { + "frameDelay": 2, + "resultId": 3 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 6, + "resultId": 0 + }, { + "frameDelay": 6, + "resultId": 4 + }, { + "frameDelay": 6, + "resultId": 5 + }, { + "frameDelay": 50, + "resultId": 6 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 5 + }, { + "resultType": 0, + "index": 6 + }], + "resultCount": 7, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/ball_throws/mud_cell.json b/res/graphics/battle/ball_throws/mud_cell.json new file mode 100644 index 0000000000..1520a243d1 --- /dev/null +++ b/res/graphics/battle/ball_throws/mud_cell.json @@ -0,0 +1,250 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 7, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 2, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 6, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 10, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/ball_throws/nest_ball.png b/res/graphics/battle/ball_throws/nest_ball.png new file mode 100644 index 0000000000..609e708c11 Binary files /dev/null and b/res/graphics/battle/ball_throws/nest_ball.png differ diff --git a/res/graphics/battle/ball_throws/net_ball.png b/res/graphics/battle/ball_throws/net_ball.png new file mode 100644 index 0000000000..fdcaefaab7 Binary files /dev/null and b/res/graphics/battle/ball_throws/net_ball.png differ diff --git a/res/graphics/battle/ball_throws/park_ball.png b/res/graphics/battle/ball_throws/park_ball.png new file mode 100644 index 0000000000..9e42cf20c2 Binary files /dev/null and b/res/graphics/battle/ball_throws/park_ball.png differ diff --git a/res/graphics/battle/ball_throws/poke_ball.png b/res/graphics/battle/ball_throws/poke_ball.png new file mode 100644 index 0000000000..0ec0cbe8bd Binary files /dev/null and b/res/graphics/battle/ball_throws/poke_ball.png differ diff --git a/res/graphics/battle/ball_throws/premier_ball.png b/res/graphics/battle/ball_throws/premier_ball.png new file mode 100644 index 0000000000..8bfc5ab2ca Binary files /dev/null and b/res/graphics/battle/ball_throws/premier_ball.png differ diff --git a/res/graphics/battle/ball_throws/quick_ball.png b/res/graphics/battle/ball_throws/quick_ball.png new file mode 100644 index 0000000000..698d921aa7 Binary files /dev/null and b/res/graphics/battle/ball_throws/quick_ball.png differ diff --git a/res/graphics/battle/ball_throws/quick_dusk_heal_anim.json b/res/graphics/battle/ball_throws/quick_dusk_heal_anim.json new file mode 100644 index 0000000000..2aed258e0b --- /dev/null +++ b/res/graphics/battle/ball_throws/quick_dusk_heal_anim.json @@ -0,0 +1,88 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 2, + "frameCount": 11, + "sequences": [{ + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 2, + "resultId": 0 + }, { + "frameDelay": 2, + "resultId": 1 + }, { + "frameDelay": 2, + "resultId": 2 + }, { + "frameDelay": 2, + "resultId": 3 + }, { + "frameDelay": 2, + "resultId": 4 + }, { + "frameDelay": 2, + "resultId": 5 + }, { + "frameDelay": 2, + "resultId": 6 + }, { + "frameDelay": 2, + "resultId": 7 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 10, + "resultId": 0 + }, { + "frameDelay": 10, + "resultId": 8 + }, { + "frameDelay": 50, + "resultId": 9 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 5 + }, { + "resultType": 0, + "index": 6 + }, { + "resultType": 0, + "index": 7 + }, { + "resultType": 0, + "index": 8 + }, { + "resultType": 0, + "index": 9 + }], + "resultCount": 10, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/ball_throws/repeat_ball.png b/res/graphics/battle/ball_throws/repeat_ball.png new file mode 100644 index 0000000000..7ea7b3c0b6 Binary files /dev/null and b/res/graphics/battle/ball_throws/repeat_ball.png differ diff --git a/res/graphics/battle/ball_throws/safari_ball.png b/res/graphics/battle/ball_throws/safari_ball.png new file mode 100644 index 0000000000..e4d8d83f31 Binary files /dev/null and b/res/graphics/battle/ball_throws/safari_ball.png differ diff --git a/res/graphics/battle/ball_throws/shared_anim.json b/res/graphics/battle/ball_throws/shared_anim.json new file mode 100644 index 0000000000..6cc605bea4 --- /dev/null +++ b/res/graphics/battle/ball_throws/shared_anim.json @@ -0,0 +1,88 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 2, + "frameCount": 11, + "sequences": [{ + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 2, + "resultId": 0 + }, { + "frameDelay": 2, + "resultId": 1 + }, { + "frameDelay": 6, + "resultId": 2 + }, { + "frameDelay": 2, + "resultId": 3 + }, { + "frameDelay": 2, + "resultId": 4 + }, { + "frameDelay": 2, + "resultId": 5 + }, { + "frameDelay": 6, + "resultId": 6 + }, { + "frameDelay": 2, + "resultId": 7 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 10, + "resultId": 0 + }, { + "frameDelay": 10, + "resultId": 8 + }, { + "frameDelay": 50, + "resultId": 9 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 5 + }, { + "resultType": 0, + "index": 6 + }, { + "resultType": 0, + "index": 7 + }, { + "resultType": 0, + "index": 8 + }, { + "resultType": 0, + "index": 9 + }], + "resultCount": 10, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/ball_throws/shared_cell.json b/res/graphics/battle/ball_throws/shared_cell.json new file mode 100644 index 0000000000..e79f01a264 --- /dev/null +++ b/res/graphics/battle/ball_throws/shared_cell.json @@ -0,0 +1,352 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 10, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 2, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 6, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 10, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 14, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 6 + }, + "maxX": 16, + "maxY": 16, + "minX": -16, + "minY": -16, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 18, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/ball_throws/timer_ball.png b/res/graphics/battle/ball_throws/timer_ball.png new file mode 100644 index 0000000000..2883b6d4b3 Binary files /dev/null and b/res/graphics/battle/ball_throws/timer_ball.png differ diff --git a/res/graphics/battle/ball_throws/ultra_ball.png b/res/graphics/battle/ball_throws/ultra_ball.png new file mode 100644 index 0000000000..cc692995be Binary files /dev/null and b/res/graphics/battle/ball_throws/ultra_ball.png differ diff --git a/res/graphics/battle/ball_throws/unused_poke_ball.png b/res/graphics/battle/ball_throws/unused_poke_ball.png new file mode 100644 index 0000000000..0e8a4f3668 Binary files /dev/null and b/res/graphics/battle/ball_throws/unused_poke_ball.png differ diff --git a/res/graphics/battle/ball_throws/unused_poke_ball_anim.json b/res/graphics/battle/ball_throws/unused_poke_ball_anim.json new file mode 100644 index 0000000000..d25c104313 --- /dev/null +++ b/res/graphics/battle/ball_throws/unused_poke_ball_anim.json @@ -0,0 +1,88 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 2, + "frameCount": 11, + "sequences": [{ + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 2, + "resultId": 0 + }, { + "frameDelay": 2, + "resultId": 1 + }, { + "frameDelay": 6, + "resultId": 2 + }, { + "frameDelay": 2, + "resultId": 3 + }, { + "frameDelay": 2, + "resultId": 4 + }, { + "frameDelay": 2, + "resultId": 5 + }, { + "frameDelay": 6, + "resultId": 6 + }, { + "frameDelay": 2, + "resultId": 7 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 10, + "resultId": 0 + }, { + "frameDelay": 10, + "resultId": 8 + }, { + "frameDelay": 50, + "resultId": 9 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 5 + }, { + "resultType": 0, + "index": 6 + }, { + "resultType": 0, + "index": 7 + }, { + "resultType": 0, + "index": 8 + }, { + "resultType": 0, + "index": 9 + }], + "resultCount": 10, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/arrows_thin.png b/res/graphics/battle/healthbox/arrows_thin.png new file mode 100644 index 0000000000..9c4da542d6 Binary files /dev/null and b/res/graphics/battle/healthbox/arrows_thin.png differ diff --git a/res/graphics/battle/healthbox/arrows_thin_anim.json b/res/graphics/battle/healthbox/arrows_thin_anim.json new file mode 100644 index 0000000000..deb41d10b3 --- /dev/null +++ b/res/graphics/battle/healthbox/arrows_thin_anim.json @@ -0,0 +1,48 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 1, + "frameCount": 5, + "sequences": [{ + "frameCount": 5, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 16, + "resultId": 0 + }, { + "frameDelay": 4, + "resultId": 1 + }, { + "frameDelay": 6, + "resultId": 2 + }, { + "frameDelay": 6, + "resultId": 3 + }, { + "frameDelay": 6, + "resultId": 4 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }], + "resultCount": 5, + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/arrows_thin_cell.json b/res/graphics/battle/healthbox/arrows_thin_cell.json new file mode 100644 index 0000000000..2febc86963 --- /dev/null +++ b/res/graphics/battle/healthbox/arrows_thin_cell.json @@ -0,0 +1,212 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 6, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 1, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 2, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 5 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 3, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 5 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 5, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 6, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/arrows_wide.png b/res/graphics/battle/healthbox/arrows_wide.png new file mode 100644 index 0000000000..cfdfa4d495 Binary files /dev/null and b/res/graphics/battle/healthbox/arrows_wide.png differ diff --git a/res/graphics/battle/healthbox/arrows_wide_anim.json b/res/graphics/battle/healthbox/arrows_wide_anim.json new file mode 100644 index 0000000000..d5cfb9c3ba --- /dev/null +++ b/res/graphics/battle/healthbox/arrows_wide_anim.json @@ -0,0 +1,54 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 1, + "frameCount": 6, + "sequences": [{ + "frameCount": 6, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 0, + "resultId": 0 + }, { + "frameDelay": 4, + "resultId": 1 + }, { + "frameDelay": 4, + "resultId": 2 + }, { + "frameDelay": 4, + "resultId": 3 + }, { + "frameDelay": 16, + "resultId": 4 + }, { + "frameDelay": 6, + "resultId": 5 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 5 + }], + "resultCount": 6, + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/arrows_wide_cell.json b/res/graphics/battle/healthbox/arrows_wide_cell.json new file mode 100644 index 0000000000..de59a0f62d --- /dev/null +++ b/res/graphics/battle/healthbox/arrows_wide_cell.json @@ -0,0 +1,256 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 6, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 0 + }, + "maxX": -32768, + "maxY": -32768, + "minX": 32767, + "minY": 32767, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 2, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 5 + }, + "maxX": 8, + "maxY": 8, + "minX": -16, + "minY": -8, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 6, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 5 + }, + "maxX": 8, + "maxY": 8, + "minX": -16, + "minY": -8, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 7, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 9, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 5 + }, + "maxX": 8, + "maxY": 8, + "minX": -16, + "minY": -8, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 10, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/enemy.png b/res/graphics/battle/healthbox/enemy.png new file mode 100644 index 0000000000..d8aefa5422 Binary files /dev/null and b/res/graphics/battle/healthbox/enemy.png differ diff --git a/res/graphics/battle/healthbar_parts.png b/res/graphics/battle/healthbox/healthbar_parts.png similarity index 100% rename from res/graphics/battle/healthbar_parts.png rename to res/graphics/battle/healthbox/healthbar_parts.png diff --git a/res/graphics/battle/healthbox/meson.build b/res/graphics/battle/healthbox/meson.build new file mode 100644 index 0000000000..ca522ae56d --- /dev/null +++ b/res/graphics/battle/healthbox/meson.build @@ -0,0 +1,103 @@ +healthbox_nclr = custom_target( + 'primary.NCLR', + output: 'primary.NCLR', + input: files('player_singles.png'), + command: [ + nitrogfx_exe, '@INPUT@', '@OUTPUT@', + '-bitdepth', '4', + '-nopad', + '-invertsize', + '-pcmp', + ], +) + +healthbox_safari_nclr = custom_target( + 'safari.NCLR', + output: 'safari.NCLR', + input: files('safari.png'), + command: [ + nitrogfx_exe, '@INPUT@', '@OUTPUT@', + '-bitdepth', '4', + '-nopad', + '-invertsize', + '-pcmp', + ], +) + +short_cell = files('short_cell.json') +tall_cell = files('tall_cell.json') + +battle_sprites += [ + copy_gen.process( + healthbox_nclr, + healthbox_safari_nclr, + preserve_path_from: base_build_directory, + ), + + ncgr_lz_gen.process( + files('arrows_thin.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncgr_cell_lz_gen.process( + files('arrows_wide.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncgr_lz_gen.process( + files('player_doubles.png', 'enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-version101', '-cell', short_cell[0].full_path(), + ], + ), + + ncgr_lz_gen.process( + files('player_singles.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-version101', '-cell', tall_cell[0].full_path(), + ], + ), + + ncgr_cell_lz_gen.process( + files('safari.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncer_lz_gen.process( + files( + 'short_cell.json', + 'tall_cell.json', + 'safari_cell.json', + 'arrows_thin_cell.json', + 'arrows_wide_cell.json', + ), + preserve_path_from: base_directory, + ), + + nanr_lz_gen.process( + files( + 'arrows_thin_anim.json', + 'arrows_wide_anim.json', + ), + preserve_path_from: base_directory, + ) +] + +healthbar_parts_embed = custom_target( + 'healthbar_parts.4bpp.h', + output: [ + 'healthbar_parts.4bpp', + 'healthbar_parts.4bpp.h', + ], + input: files('healthbar_parts.png'), + command: [ nitrogfx_exe, '@INPUT@', '@OUTPUT0@', '-embed', 'sHealthbarPartsBitmap' ], +) + +embed_headers += healthbar_parts_embed[1] diff --git a/res/graphics/battle/healthbox/player_doubles.png b/res/graphics/battle/healthbox/player_doubles.png new file mode 100644 index 0000000000..9141b88c69 Binary files /dev/null and b/res/graphics/battle/healthbox/player_doubles.png differ diff --git a/res/graphics/battle/healthbox/player_singles.png b/res/graphics/battle/healthbox/player_singles.png new file mode 100644 index 0000000000..e2d14e8ad3 Binary files /dev/null and b/res/graphics/battle/healthbox/player_singles.png differ diff --git a/res/graphics/battle/healthbox/safari.png b/res/graphics/battle/healthbox/safari.png new file mode 100644 index 0000000000..649bfffc6d Binary files /dev/null and b/res/graphics/battle/healthbox/safari.png differ diff --git a/res/graphics/battle/healthbox/safari_cell.json b/res/graphics/battle/healthbox/safari_cell.json new file mode 100644 index 0000000000..0405c7cadd --- /dev/null +++ b/res/graphics/battle/healthbox/safari_cell.json @@ -0,0 +1,62 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 18 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/short_cell.json b/res/graphics/battle/healthbox/short_cell.json new file mode 100644 index 0000000000..5cd7861e59 --- /dev/null +++ b/res/graphics/battle/healthbox/short_cell.json @@ -0,0 +1,66 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 18 + }, + "maxX": 64, + "maxY": 36, + "minX": -64, + "minY": -28, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -28, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -28, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/healthbox/tall_cell.json b/res/graphics/battle/healthbox/tall_cell.json new file mode 100644 index 0000000000..0cd2b8a31d --- /dev/null +++ b/res/graphics/battle/healthbox/tall_cell.json @@ -0,0 +1,66 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 18 + }, + "maxX": 64, + "maxY": 32, + "minX": -64, + "minY": -32, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/cursor.png b/res/graphics/battle/interface/cursor.png new file mode 100644 index 0000000000..5eb0aa75d8 Binary files /dev/null and b/res/graphics/battle/interface/cursor.png differ diff --git a/res/graphics/battle/interface/cursor_anim.json b/res/graphics/battle/interface/cursor_anim.json new file mode 100644 index 0000000000..0f6909472a --- /dev/null +++ b/res/graphics/battle/interface/cursor_anim.json @@ -0,0 +1,147 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 4, + "frameCount": 16, + "sequences": [{ + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 6, + "resultId": 0 + }, { + "frameDelay": 6, + "resultId": 1 + }, { + "frameDelay": 6, + "resultId": 2 + }, { + "frameDelay": 6, + "resultId": 1 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 6, + "resultId": 3 + }, { + "frameDelay": 6, + "resultId": 4 + }, { + "frameDelay": 6, + "resultId": 5 + }, { + "frameDelay": 6, + "resultId": 4 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 6, + "resultId": 6 + }, { + "frameDelay": 6, + "resultId": 7 + }, { + "frameDelay": 6, + "resultId": 8 + }, { + "frameDelay": 6, + "resultId": 7 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 6, + "resultId": 9 + }, { + "frameDelay": 6, + "resultId": 10 + }, { + "frameDelay": 6, + "resultId": 11 + }, { + "frameDelay": 6, + "resultId": 10 + }] + }], + "animationResults": [{ + "resultType": 2, + "index": 0, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 0, + "positionX": -1, + "positionY": -1 + }, { + "resultType": 2, + "index": 0, + "positionX": -2, + "positionY": -2 + }, { + "resultType": 2, + "index": 1, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 1, + "positionX": 1, + "positionY": -1 + }, { + "resultType": 2, + "index": 1, + "positionX": 2, + "positionY": -2 + }, { + "resultType": 2, + "index": 2, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 2, + "positionX": -1, + "positionY": 1 + }, { + "resultType": 2, + "index": 2, + "positionX": -2, + "positionY": 2 + }, { + "resultType": 2, + "index": 3, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 3, + "positionX": 1, + "positionY": 1 + }, { + "resultType": 2, + "index": 3, + "positionX": 2, + "positionY": 2 + }], + "resultCount": 12, + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"], + "labelCount": 4 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/cursor_cell.json b/res/graphics/battle/interface/cursor_cell.json new file mode 100644 index 0000000000..d74af4085c --- /dev/null +++ b/res/graphics/battle/interface/cursor_cell.json @@ -0,0 +1,148 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 4, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": true, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 16, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 24, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"], + "labelCount": 4 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/level_up.pal b/res/graphics/battle/interface/level_up.pal new file mode 100644 index 0000000000..91d166e45a --- /dev/null +++ b/res/graphics/battle/interface/level_up.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +123 156 115 +74 74 98 +90 98 115 +255 255 255 +156 197 246 +131 180 246 +90 131 213 +65 106 156 +230 205 197 +98 255 98 +24 197 32 +197 172 148 +139 98 74 +74 49 0 +255 222 0 +238 172 0 +0 0 0 +255 255 255 +90 98 115 +90 131 213 +156 197 246 +255 49 49 +255 115 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/interface/level_up.png b/res/graphics/battle/interface/level_up.png new file mode 100644 index 0000000000..fad1528765 Binary files /dev/null and b/res/graphics/battle/interface/level_up.png differ diff --git a/res/graphics/battle/interface/level_up_cell.json b/res/graphics/battle/interface/level_up_cell.json new file mode 100644 index 0000000000..0b10801e85 --- /dev/null +++ b/res/graphics/battle/interface/level_up_cell.json @@ -0,0 +1,66 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 36 + }, + "maxX": 128, + "maxY": 64, + "minX": 0, + "minY": 0, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/meson.build b/res/graphics/battle/interface/meson.build new file mode 100644 index 0000000000..8eaeba1ced --- /dev/null +++ b/res/graphics/battle/interface/meson.build @@ -0,0 +1,56 @@ +battle_sprites += [ + nclr_gen.process( + files('shared.pal'), + preserve_path_from: base_directory, + extra_args: [ + '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4', + '-num_colors', '112', + ], + ), + + nclr_gen.process( + files( + 'cursor.png', + 'level_up.pal', + 'top_stock.png', + ), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + + ncgr_cell_lz_gen.process( + files( + 'stock_enemy.png', + 'stock_player.png', + 'cursor.png', + ), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize' ], + ), + + ncgr_cell_lz_gen.process( + files('level_up.png', 'top_stock.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncer_lz_gen.process( + files( + 'stock_enemy_cell.json', + 'stock_player_cell.json', + 'cursor_cell.json', + 'level_up_cell.json', + 'top_stock_cell.json', + ), + preserve_path_from: base_directory, + ), + + nanr_lz_gen.process( + files( + 'stock_anim.json', + 'cursor_anim.json', + 'top_stock_anim.json', + ), + preserve_path_from: base_directory, + ), +] diff --git a/res/graphics/battle/interface/shared.pal b/res/graphics/battle/interface/shared.pal new file mode 100644 index 0000000000..a41fa1656a --- /dev/null +++ b/res/graphics/battle/interface/shared.pal @@ -0,0 +1,147 @@ +JASC-PAL +0100 +144 +123 131 255 +139 139 148 +172 172 189 +255 255 255 +57 49 49 +255 148 131 +255 82 57 +164 65 123 +205 205 213 +82 82 82 +222 139 164 +189 82 98 +131 74 74 +0 0 0 +139 139 139 +123 123 123 +123 131 255 +139 139 148 +213 213 222 +255 255 255 +49 49 49 +246 139 139 +255 106 106 +115 115 115 +164 65 82 +189 106 123 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 131 131 +106 106 106 +98 98 205 +255 255 255 +238 213 213 +90 32 32 +255 255 255 +238 230 189 +98 65 0 +255 255 255 +213 238 213 +32 74 24 +255 255 255 +205 205 230 +16 32 90 +0 0 0 +0 0 0 +172 230 189 +98 98 205 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +148 148 131 +115 115 106 +32 32 24 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +123 131 255 +57 65 57 +115 139 115 +139 106 16 +255 230 8 +180 65 0 +255 131 0 +148 0 32 +255 106 106 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 82 98 +255 255 255 +255 255 255 +205 205 205 +0 0 0 +172 172 172 +148 148 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +123 131 255 +255 255 255 +238 213 213 +90 32 32 +255 255 255 +205 205 230 +16 32 90 +0 57 255 +106 205 255 +255 0 32 +255 156 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 82 156 +24 16 164 +246 0 0 +0 0 0 +57 0 0 +123 189 123 +65 0 0 +0 0 0 +0 0 0 +8 0 0 +16 0 0 +24 0 0 +32 0 0 +41 0 0 +49 0 0 +0 0 0 +8 123 246 +8 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/interface/stock_anim.json b/res/graphics/battle/interface/stock_anim.json new file mode 100644 index 0000000000..84d25877c8 --- /dev/null +++ b/res/graphics/battle/interface/stock_anim.json @@ -0,0 +1,63 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 4, + "frameCount": 4, + "sequences": [{ + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 0 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 1 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 2 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 3 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }], + "resultCount": 4, + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"], + "labelCount": 4 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/stock_enemy.png b/res/graphics/battle/interface/stock_enemy.png new file mode 100644 index 0000000000..b42388296c Binary files /dev/null and b/res/graphics/battle/interface/stock_enemy.png differ diff --git a/res/graphics/battle/interface/stock_enemy_cell.json b/res/graphics/battle/interface/stock_enemy_cell.json new file mode 100644 index 0000000000..e85e8c70cd --- /dev/null +++ b/res/graphics/battle/interface/stock_enemy_cell.json @@ -0,0 +1,148 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 4, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"], + "labelCount": 4 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/stock_player.png b/res/graphics/battle/interface/stock_player.png new file mode 100644 index 0000000000..0c02601076 Binary files /dev/null and b/res/graphics/battle/interface/stock_player.png differ diff --git a/res/graphics/battle/interface/stock_player_cell.json b/res/graphics/battle/interface/stock_player_cell.json new file mode 100644 index 0000000000..582601ead8 --- /dev/null +++ b/res/graphics/battle/interface/stock_player_cell.json @@ -0,0 +1,148 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 4, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 6 + }, + "maxX": 16, + "maxY": 16, + "minX": -16, + "minY": -16, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 6 + }, + "maxX": 16, + "maxY": 16, + "minX": -16, + "minY": -16, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 6 + }, + "maxX": 16, + "maxY": 16, + "minX": -16, + "minY": -16, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 6 + }, + "maxX": 16, + "maxY": 16, + "minX": -16, + "minY": -16, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"], + "labelCount": 4 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/top_stock.png b/res/graphics/battle/interface/top_stock.png new file mode 100644 index 0000000000..f8553fc5a6 Binary files /dev/null and b/res/graphics/battle/interface/top_stock.png differ diff --git a/res/graphics/battle/interface/top_stock_anim.json b/res/graphics/battle/interface/top_stock_anim.json new file mode 100644 index 0000000000..2219edad6b --- /dev/null +++ b/res/graphics/battle/interface/top_stock_anim.json @@ -0,0 +1,308 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 9, + "frameCount": 51, + "sequences": [{ + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 1, + "resultId": 0 + }, { + "frameDelay": 1, + "resultId": 1 + }, { + "frameDelay": 1, + "resultId": 2 + }, { + "frameDelay": 1, + "resultId": 3 + }, { + "frameDelay": 1, + "resultId": 4 + }, { + "frameDelay": 1, + "resultId": 5 + }, { + "frameDelay": 1, + "resultId": 6 + }, { + "frameDelay": 1, + "resultId": 7 + }] + }, { + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 1, + "resultId": 8 + }, { + "frameDelay": 1, + "resultId": 9 + }, { + "frameDelay": 1, + "resultId": 10 + }, { + "frameDelay": 1, + "resultId": 11 + }, { + "frameDelay": 1, + "resultId": 12 + }, { + "frameDelay": 1, + "resultId": 13 + }, { + "frameDelay": 1, + "resultId": 14 + }, { + "frameDelay": 1, + "resultId": 15 + }] + }, { + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 1, + "resultId": 16 + }, { + "frameDelay": 1, + "resultId": 17 + }, { + "frameDelay": 1, + "resultId": 18 + }, { + "frameDelay": 1, + "resultId": 19 + }, { + "frameDelay": 1, + "resultId": 20 + }, { + "frameDelay": 1, + "resultId": 21 + }, { + "frameDelay": 1, + "resultId": 22 + }, { + "frameDelay": 1, + "resultId": 23 + }] + }, { + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 1, + "resultId": 0 + }, { + "frameDelay": 1, + "resultId": 7 + }, { + "frameDelay": 1, + "resultId": 6 + }, { + "frameDelay": 1, + "resultId": 5 + }, { + "frameDelay": 1, + "resultId": 4 + }, { + "frameDelay": 1, + "resultId": 3 + }, { + "frameDelay": 1, + "resultId": 2 + }, { + "frameDelay": 1, + "resultId": 1 + }] + }, { + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 1, + "resultId": 8 + }, { + "frameDelay": 1, + "resultId": 15 + }, { + "frameDelay": 1, + "resultId": 14 + }, { + "frameDelay": 1, + "resultId": 13 + }, { + "frameDelay": 1, + "resultId": 12 + }, { + "frameDelay": 1, + "resultId": 11 + }, { + "frameDelay": 1, + "resultId": 10 + }, { + "frameDelay": 1, + "resultId": 9 + }] + }, { + "frameCount": 8, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 1, + "resultId": 16 + }, { + "frameDelay": 1, + "resultId": 23 + }, { + "frameDelay": 1, + "resultId": 22 + }, { + "frameDelay": 1, + "resultId": 21 + }, { + "frameDelay": 1, + "resultId": 20 + }, { + "frameDelay": 1, + "resultId": 19 + }, { + "frameDelay": 1, + "resultId": 18 + }, { + "frameDelay": 1, + "resultId": 17 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 24 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 25 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 26 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 7 + }, { + "resultType": 0, + "index": 6 + }, { + "resultType": 0, + "index": 5 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 8 + }, { + "resultType": 0, + "index": 15 + }, { + "resultType": 0, + "index": 14 + }, { + "resultType": 0, + "index": 13 + }, { + "resultType": 0, + "index": 12 + }, { + "resultType": 0, + "index": 11 + }, { + "resultType": 0, + "index": 10 + }, { + "resultType": 0, + "index": 9 + }, { + "resultType": 0, + "index": 16 + }, { + "resultType": 0, + "index": 23 + }, { + "resultType": 0, + "index": 22 + }, { + "resultType": 0, + "index": 21 + }, { + "resultType": 0, + "index": 20 + }, { + "resultType": 0, + "index": 19 + }, { + "resultType": 0, + "index": 18 + }, { + "resultType": 0, + "index": 17 + }, { + "resultType": 0, + "index": 24 + }, { + "resultType": 0, + "index": 25 + }, { + "resultType": 0, + "index": 26 + }], + "resultCount": 27, + "labels": ["CellAnime8", "CellAnime7", "CellAnime6", "CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3", "CellAnime4", "CellAnime5"], + "labelCount": 9 +} \ No newline at end of file diff --git a/res/graphics/battle/interface/top_stock_cell.json b/res/graphics/battle/interface/top_stock_cell.json new file mode 100644 index 0000000000..e9adf7b730 --- /dev/null +++ b/res/graphics/battle/interface/top_stock_cell.json @@ -0,0 +1,1130 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 27, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 2, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 6, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 10, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 14, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 18, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 20, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 22, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 24, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 26, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 28, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 30, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 34, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 38, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 42, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 46, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 3 + }, + "maxX": 8, + "maxY": 8, + "minX": -8, + "minY": -8, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 24 + }, + "maxX": 96, + "maxY": 8, + "minX": -96, + "minY": 0, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 64, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 50, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 52, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 54, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -32, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 56, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 58, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -96, + "RotationScaling": 8, + "Size": 1 + }, + "Attr2": { + "CharName": 60, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 24 + }, + "maxX": 96, + "maxY": 8, + "minX": -96, + "minY": 0, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -96, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 50, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 52, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 54, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 56, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 58, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 64, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 60, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime8", "CellAnime7", "CellAnime6", "CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3", "CellAnime4", "CellAnime5"], + "labelCount": 9 +} \ No newline at end of file diff --git a/res/graphics/battle/meson.build b/res/graphics/battle/meson.build index 2b17663a9d..a68dfaef83 100644 --- a/res/graphics/battle/meson.build +++ b/res/graphics/battle/meson.build @@ -1,12 +1,31 @@ subdir('moves') -healthbar_parts_embed = custom_target('healthbar_parts.4bpp.h', - output: [ - 'healthbar_parts.4bpp', - 'healthbar_parts.4bpp.h', - ], - input: files('healthbar_parts.png'), - command: [ nitrogfx_exe, '@INPUT@', '@OUTPUT0@', '-embed', 'sHealthbarPartsBitmap' ], +battle_sprites = [] +base_directory = meson.current_source_dir() +base_build_directory = meson.current_build_dir() + +subdir('ball_throws') +subdir('healthbox') +subdir('interface') +subdir('misc') +subdir('terrain') +subdir('trainer_backs') +subdir('type_icons') + +battle_sprites_narc = custom_target( + 'sprites.narc', + output: [ 'sprites.narc', 'sprites.naix' ], + input: battle_sprites, + + command: [ + nitroarc_exe, + '--create', + '--index', + '--files-from', files('sprites.order'), + '--file', '@OUTPUT0@', + '@PRIVATE_DIR@', + ], ) -embed_headers += healthbar_parts_embed[1] +nitrofs_files += battle_sprites_narc +naix_headers += battle_sprites_narc[1] diff --git a/res/graphics/battle/misc/debug.pal b/res/graphics/battle/misc/debug.pal new file mode 100644 index 0000000000..b7fe064cef --- /dev/null +++ b/res/graphics/battle/misc/debug.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +106 213 49 +65 65 65 +255 255 255 +205 205 205 +148 148 123 +82 123 189 +16 65 131 +41 49 65 +82 98 139 +255 213 82 +255 180 65 +230 98 115 +16 238 238 +32 156 164 +246 246 246 +0 0 0 +0 255 0 +0 0 0 +57 74 65 +222 106 90 +123 148 131 +255 255 222 +32 57 0 +197 189 115 +255 230 0 +90 213 131 +222 213 180 +82 106 98 +255 255 255 +115 255 172 +255 172 123 +74 65 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/misc/debug_frame.pal b/res/graphics/battle/misc/debug_frame.pal new file mode 100644 index 0000000000..ec2916a9e5 --- /dev/null +++ b/res/graphics/battle/misc/debug_frame.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 0 0 +222 0 0 +98 41 246 +139 8 41 +197 0 0 +0 0 0 +255 197 180 +255 131 131 +197 106 98 +156 74 65 +148 139 205 +0 0 0 +106 90 156 +106 74 82 +49 41 57 diff --git a/res/graphics/battle/misc/debug_frame_1.png b/res/graphics/battle/misc/debug_frame_1.png new file mode 100644 index 0000000000..a0d6025f46 Binary files /dev/null and b/res/graphics/battle/misc/debug_frame_1.png differ diff --git a/res/graphics/battle/misc/debug_frame_1_cell.json b/res/graphics/battle/misc/debug_frame_1_cell.json new file mode 100644 index 0000000000..5ca637e89c --- /dev/null +++ b/res/graphics/battle/misc/debug_frame_1_cell.json @@ -0,0 +1,382 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 25 + }, + "oamCount": 18, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 80, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -88, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 18, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 20, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 22, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 26, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 30, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 80, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 80, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 22, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -80, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -80, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -88, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -48, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -88, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 52, + "Priority": 0, + "Palette": 1 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/debug_frame_2.png b/res/graphics/battle/misc/debug_frame_2.png new file mode 100644 index 0000000000..d8787b46a3 Binary files /dev/null and b/res/graphics/battle/misc/debug_frame_2.png differ diff --git a/res/graphics/battle/misc/debug_frame_2_cell.json b/res/graphics/battle/misc/debug_frame_2_cell.json new file mode 100644 index 0000000000..193e88ebbf --- /dev/null +++ b/res/graphics/battle/misc/debug_frame_2_cell.json @@ -0,0 +1,202 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 13 + }, + "oamCount": 9, + "OAM": [{ + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 12, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 14, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 18, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 22, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 26, + "Priority": 0, + "Palette": 1 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/debug_frame_3.png b/res/graphics/battle/misc/debug_frame_3.png new file mode 100644 index 0000000000..c0e1ddb0fb Binary files /dev/null and b/res/graphics/battle/misc/debug_frame_3.png differ diff --git a/res/graphics/battle/misc/debug_frame_3_cell.json b/res/graphics/battle/misc/debug_frame_3_cell.json new file mode 100644 index 0000000000..c0235e30e0 --- /dev/null +++ b/res/graphics/battle/misc/debug_frame_3_cell.json @@ -0,0 +1,262 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 17 + }, + "oamCount": 12, + "OAM": [{ + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 9, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 13, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 17, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 21, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 25, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -56, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 29, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -56, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 30, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": -56, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 34, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -48, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 38, + "Priority": 0, + "Palette": 1 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/meson.build b/res/graphics/battle/misc/meson.build new file mode 100644 index 0000000000..bd73548fcd --- /dev/null +++ b/res/graphics/battle/misc/meson.build @@ -0,0 +1,69 @@ +battle_sprites += [ + nclr_gen.process( + files('debug.pal', 'unk_179.png'), + extra_args: [ '-bitdepth', '4' ], + preserve_path_from: base_directory, + ), + + nclr_gen.process( + files('debug_frame.pal', 'pokesprite_1.png', 'pokesprite_2.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + + ncgr_lz_gen.process( + files('unk_117.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncgr_cell_gen.process( + files('pokesprite_1.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncgr_cell_lz_gen.process( + files('unk_120.png', 'unk_121_124.png'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize', '-mappingtype', '64' ], + ), + + ncgr_cell_gen.process( + files('pokesprite_2.png'), + preserve_path_from: base_directory, + extra_args: [ '-convertTo4Bpp', '-clobbersize', '-mappingtype', '128' ], + ), + + ncgr_cell_lz_gen.process( + files( + 'unk_179.png', + 'debug_frame_1.png', + 'debug_frame_2.png', + 'debug_frame_3.png', + ), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4', '-clobbersize' ], + ), + + ncer_gen.process( + files('pokesprite_1_cell.json', 'pokesprite_2_cell.json'), + preserve_path_from: base_directory, + ), + + ncer_lz_gen.process( + files( + 'unk_117_cell.json', + 'unk_120_cell.json', + 'unk_121_124_cell.json', + 'unk_179_cell.json', + 'debug_frame_1_cell.json', + 'debug_frame_2_cell.json', + 'debug_frame_3_cell.json', + ), + preserve_path_from: base_directory, + ), + + nanr_gen.process(files('single_frame_anim.json'), preserve_path_from: base_directory), + nanr_lz_gen.process(files('single_frame_anim.json'), preserve_path_from: base_directory), +] diff --git a/res/graphics/battle/misc/pokesprite_1.png b/res/graphics/battle/misc/pokesprite_1.png new file mode 100644 index 0000000000..d58d26c2cd Binary files /dev/null and b/res/graphics/battle/misc/pokesprite_1.png differ diff --git a/res/graphics/battle/misc/pokesprite_1_cell.json b/res/graphics/battle/misc/pokesprite_1_cell.json new file mode 100644 index 0000000000..9d8c1b6235 --- /dev/null +++ b/res/graphics/battle/misc/pokesprite_1_cell.json @@ -0,0 +1,146 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 40, + "maxY": 40, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/pokesprite_2.pal b/res/graphics/battle/misc/pokesprite_2.pal new file mode 100644 index 0000000000..30e24af8e2 --- /dev/null +++ b/res/graphics/battle/misc/pokesprite_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 197 106 +82 82 90 +164 164 172 +238 32 16 +255 172 189 +0 115 255 +123 189 238 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +255 189 197 +222 222 222 +148 213 255 +255 255 255 diff --git a/res/graphics/battle/misc/pokesprite_2.png b/res/graphics/battle/misc/pokesprite_2.png new file mode 100644 index 0000000000..c43722d086 Binary files /dev/null and b/res/graphics/battle/misc/pokesprite_2.png differ diff --git a/res/graphics/battle/misc/pokesprite_2_cell.json b/res/graphics/battle/misc/pokesprite_2_cell.json new file mode 100644 index 0000000000..0387510b82 --- /dev/null +++ b/res/graphics/battle/misc/pokesprite_2_cell.json @@ -0,0 +1,146 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 2, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 40, + "maxY": 40, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 18, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 20, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 22, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 24, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/single_frame_anim.json b/res/graphics/battle/misc/single_frame_anim.json new file mode 100644 index 0000000000..80d6408641 --- /dev/null +++ b/res/graphics/battle/misc/single_frame_anim.json @@ -0,0 +1,24 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 1, + "frameCount": 1, + "sequences": [{ + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 0 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }], + "resultCount": 1, + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/unk_117.png b/res/graphics/battle/misc/unk_117.png new file mode 100644 index 0000000000..e2bcd7ca6f Binary files /dev/null and b/res/graphics/battle/misc/unk_117.png differ diff --git a/res/graphics/battle/misc/unk_117_cell.json b/res/graphics/battle/misc/unk_117_cell.json new file mode 100644 index 0000000000..2f9c2277bd --- /dev/null +++ b/res/graphics/battle/misc/unk_117_cell.json @@ -0,0 +1,102 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 18 + }, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 1, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 64, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 1, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 96, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/unk_120.png b/res/graphics/battle/misc/unk_120.png new file mode 100644 index 0000000000..94185216d0 Binary files /dev/null and b/res/graphics/battle/misc/unk_120.png differ diff --git a/res/graphics/battle/misc/unk_120_cell.json b/res/graphics/battle/misc/unk_120_cell.json new file mode 100644 index 0000000000..cf8357f054 --- /dev/null +++ b/res/graphics/battle/misc/unk_120_cell.json @@ -0,0 +1,62 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 19 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -56, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/unk_121_124.png b/res/graphics/battle/misc/unk_121_124.png new file mode 100644 index 0000000000..f3bbd1cfd5 Binary files /dev/null and b/res/graphics/battle/misc/unk_121_124.png differ diff --git a/res/graphics/battle/misc/unk_121_124_cell.json b/res/graphics/battle/misc/unk_121_124_cell.json new file mode 100644 index 0000000000..3172f21116 --- /dev/null +++ b/res/graphics/battle/misc/unk_121_124_cell.json @@ -0,0 +1,82 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 10 + }, + "oamCount": 3, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 4, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 8, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/misc/unk_179.png b/res/graphics/battle/misc/unk_179.png new file mode 100644 index 0000000000..b9d9af5602 Binary files /dev/null and b/res/graphics/battle/misc/unk_179.png differ diff --git a/res/graphics/battle/misc/unk_179_cell.json b/res/graphics/battle/misc/unk_179_cell.json new file mode 100644 index 0000000000..f6c361ab24 --- /dev/null +++ b/res/graphics/battle/misc/unk_179_cell.json @@ -0,0 +1,42 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 5 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/sprites.order b/res/graphics/battle/sprites.order new file mode 100644 index 0000000000..9512f79ce5 --- /dev/null +++ b/res/graphics/battle/sprites.order @@ -0,0 +1,343 @@ +misc/debug.NCLR +terrain/grass/day.NCLR +terrain/grass/evening.NCLR +terrain/grass/night.NCLR +terrain/water/day.NCLR +terrain/water/evening.NCLR +terrain/water/night.NCLR +terrain/path/day.NCLR +terrain/path/evening.NCLR +terrain/path/night.NCLR +terrain/ice/day.NCLR +terrain/ice/evening.NCLR +terrain/ice/night.NCLR +terrain/rocky/day.NCLR +terrain/rocky/evening.NCLR +terrain/rocky/night.NCLR +terrain/snow/day.NCLR +terrain/snow/evening.NCLR +terrain/snow/night.NCLR +terrain/indoors/all.NCLR +terrain/indoors/all.NCLR +terrain/indoors/all.NCLR +terrain/sand/day.NCLR +terrain/sand/evening.NCLR +terrain/sand/night.NCLR +terrain/mud/day.NCLR +terrain/mud/evening.NCLR +terrain/mud/night.NCLR +terrain/cave/all.NCLR +terrain/cave/all.NCLR +terrain/cave/all.NCLR +terrain/path_puddles/day.NCLR +terrain/path_puddles/evening.NCLR +terrain/path_puddles/night.NCLR +terrain/league_aaron/all.NCLR +terrain/league_aaron/all.NCLR +terrain/league_aaron/all.NCLR +terrain/league_bertha/all.NCLR +terrain/league_bertha/all.NCLR +terrain/league_bertha/all.NCLR +terrain/league_flint/all.NCLR +terrain/league_flint/all.NCLR +terrain/league_flint/all.NCLR +terrain/league_lucian/all.NCLR +terrain/league_lucian/all.NCLR +terrain/league_lucian/all.NCLR +terrain/league_cynthia/all.NCLR +terrain/league_cynthia/all.NCLR +terrain/league_cynthia/all.NCLR +terrain/distortion_world/all.NCLR +terrain/distortion_world/all.NCLR +terrain/distortion_world/all.NCLR +terrain/battle_tower/all.NCLR +terrain/battle_tower/all.NCLR +terrain/battle_tower/all.NCLR +terrain/battle_factory/all.NCLR +terrain/battle_factory/all.NCLR +terrain/battle_factory/all.NCLR +terrain/battle_arcade/all.NCLR +terrain/battle_arcade/all.NCLR +terrain/battle_arcade/all.NCLR +terrain/battle_castle/all.NCLR +terrain/battle_castle/all.NCLR +terrain/battle_castle/all.NCLR +terrain/battle_hall/all.NCLR +terrain/battle_hall/all.NCLR +terrain/battle_hall/all.NCLR +terrain/giratina/all.NCLR +terrain/giratina/all.NCLR +terrain/giratina/all.NCLR +misc/unk_179.NCLR +healthbox/primary.NCLR +interface/shared.NCLR +misc/debug_frame.NCLR +type_icons/shared.NCLR +misc/pokesprite_1.NCLR +misc/pokesprite_1.NCGR +misc/pokesprite_1_cell.NCER +misc/single_frame_anim.NANR +ball_throws/unused_poke_ball.NCLR +interface/cursor.NCLR +healthbox/safari.NCLR +interface/level_up.NCLR +trainer_backs/lucas_dp.NCLR +trainer_backs/dawn_dp.NCLR +trainer_backs/barry_dp.NCLR +trainer_backs/cheryl.NCLR +trainer_backs/riley.NCLR +trainer_backs/marley.NCLR +trainer_backs/buck.NCLR +trainer_backs/mira.NCLR +ball_throws/poke_ball.NCLR +ball_throws/master_ball.NCLR +ball_throws/ultra_ball.NCLR +ball_throws/great_ball.NCLR +ball_throws/safari_ball.NCLR +ball_throws/net_ball.NCLR +ball_throws/dive_ball.NCLR +ball_throws/nest_ball.NCLR +ball_throws/repeat_ball.NCLR +ball_throws/timer_ball.NCLR +ball_throws/luxury_ball.NCLR +ball_throws/premier_ball.NCLR +ball_throws/quick_ball.NCLR +ball_throws/dusk_ball.NCLR +ball_throws/heal_ball.NCLR +ball_throws/cherish_ball.NCLR +ball_throws/park_ball.NCLR +ball_throws/bait.NCLR +ball_throws/mud.NCLR +interface/top_stock.NCLR +misc/pokesprite_2.NCLR +misc/pokesprite_2.NCGR +misc/pokesprite_2_cell.NCER +misc/single_frame_anim.NANR +misc/single_frame_anim.NANR.lz +misc/unk_117_cell.NCER.lz +misc/unk_117.NCGR.lz +misc/single_frame_anim.NANR.lz +misc/unk_120_cell.NCER.lz +misc/unk_120.NCGR.lz +misc/unk_121_124.NCGR.lz +misc/unk_121_124_cell.NCER.lz +misc/single_frame_anim.NANR.lz +misc/unk_121_124.NCGR.lz +misc/unk_121_124_cell.NCER.lz +misc/single_frame_anim.NANR.lz +terrain/grass/player.NCGR.lz +terrain/player_cell.NCER.lz +terrain/player_anim.NANR.lz +terrain/grass/enemy.NCGR.lz +terrain/enemy_cell.NCER.lz +terrain/enemy_anim.NANR.lz +terrain/water/player.NCGR.lz +terrain/water/enemy.NCGR.lz +terrain/path/player.NCGR.lz +terrain/path/enemy.NCGR.lz +terrain/ice/player.NCGR.lz +terrain/ice/enemy.NCGR.lz +terrain/rocky/player.NCGR.lz +terrain/rocky/enemy.NCGR.lz +terrain/snow/player.NCGR.lz +terrain/snow/enemy.NCGR.lz +terrain/indoors/player.NCGR.lz +terrain/indoors/enemy.NCGR.lz +terrain/sand/player.NCGR.lz +terrain/sand/enemy.NCGR.lz +terrain/mud/player.NCGR.lz +terrain/mud/enemy.NCGR.lz +terrain/cave/player.NCGR.lz +terrain/cave/enemy.NCGR.lz +terrain/path_puddles/player.NCGR.lz +terrain/path_puddles/enemy.NCGR.lz +terrain/league_aaron/player.NCGR.lz +terrain/league_aaron/enemy.NCGR.lz +terrain/league_bertha/player.NCGR.lz +terrain/league_bertha/enemy.NCGR.lz +terrain/league_flint/player.NCGR.lz +terrain/league_flint/enemy.NCGR.lz +terrain/league_lucian/player.NCGR.lz +terrain/league_lucian/enemy.NCGR.lz +terrain/league_cynthia/player.NCGR.lz +terrain/league_cynthia/enemy.NCGR.lz +terrain/distortion_world/player.NCGR.lz +terrain/distortion_world/enemy.NCGR.lz +terrain/battle_tower/player.NCGR.lz +terrain/battle_tower/enemy.NCGR.lz +terrain/battle_factory/player.NCGR.lz +terrain/battle_factory/enemy.NCGR.lz +terrain/battle_arcade/player.NCGR.lz +terrain/battle_arcade/enemy.NCGR.lz +terrain/battle_castle/player.NCGR.lz +terrain/battle_castle/enemy.NCGR.lz +terrain/battle_hall/player.NCGR.lz +terrain/battle_hall/enemy.NCGR.lz +terrain/giratina/player.NCGR.lz +terrain/giratina/enemy.NCGR.lz +misc/single_frame_anim.NANR.lz +misc/unk_179_cell.NCER.lz +misc/unk_179.NCGR.lz +healthbox/arrows_thin_anim.NANR.lz +healthbox/arrows_thin_cell.NCER.lz +healthbox/arrows_thin.NCGR.lz +healthbox/arrows_wide_anim.NANR.lz +healthbox/arrows_wide_cell.NCER.lz +healthbox/arrows_wide.NCGR.lz +misc/single_frame_anim.NANR.lz +healthbox/short_cell.NCER.lz +healthbox/enemy.NCGR.lz +misc/single_frame_anim.NANR.lz +healthbox/tall_cell.NCER.lz +healthbox/player_singles.NCGR.lz +misc/single_frame_anim.NANR.lz +healthbox/short_cell.NCER.lz +healthbox/enemy.NCGR.lz +misc/single_frame_anim.NANR.lz +healthbox/short_cell.NCER.lz +healthbox/enemy.NCGR.lz +misc/single_frame_anim.NANR.lz +healthbox/short_cell.NCER.lz +healthbox/player_doubles.NCGR.lz +misc/single_frame_anim.NANR.lz +healthbox/short_cell.NCER.lz +healthbox/player_doubles.NCGR.lz +interface/stock_enemy_cell.NCER.lz +interface/stock_enemy.NCGR.lz +interface/stock_anim.NANR.lz +interface/stock_player_cell.NCER.lz +interface/stock_player.NCGR.lz +interface/stock_anim.NANR.lz +misc/debug_frame_1_cell.NCER.lz +misc/debug_frame_1.NCGR.lz +misc/single_frame_anim.NANR.lz +misc/debug_frame_2_cell.NCER.lz +misc/debug_frame_2.NCGR.lz +misc/single_frame_anim.NANR.lz +misc/debug_frame_3_cell.NCER.lz +misc/debug_frame_3.NCGR.lz +misc/single_frame_anim.NANR.lz +type_icons/beauty.NCGR.lz +type_icons/cute.NCGR.lz +type_icons/dragon.NCGR.lz +type_icons/electric.NCGR.lz +type_icons/psychic.NCGR.lz +type_icons/dark.NCGR.lz +type_icons/fighting.NCGR.lz +type_icons/fire.NCGR.lz +type_icons/flying.NCGR.lz +type_icons/ghost.NCGR.lz +type_icons/ground.NCGR.lz +type_icons/ice.NCGR.lz +type_icons/bug.NCGR.lz +type_icons/smart.NCGR.lz +type_icons/grass.NCGR.lz +type_icons/normal.NCGR.lz +type_icons/poison.NCGR.lz +type_icons/mystery.NCGR.lz +type_icons/rock.NCGR.lz +type_icons/steel.NCGR.lz +type_icons/tough.NCGR.lz +type_icons/cool.NCGR.lz +type_icons/water.NCGR.lz +type_icons/cell.NCER.lz +misc/single_frame_anim.NANR.lz +type_icons/physical.NCGR.lz +type_icons/status.NCGR.lz +type_icons/special.NCGR.lz +ball_throws/unused_poke_ball.NCGR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/unused_poke_ball_anim.NANR.lz +interface/cursor.NCGR.lz +interface/cursor_cell.NCER.lz +interface/cursor_anim.NANR.lz +healthbox/safari.NCGR.lz +healthbox/safari_cell.NCER.lz +misc/single_frame_anim.NANR.lz +interface/level_up.NCGR.lz +interface/level_up_cell.NCER.lz +misc/single_frame_anim.NANR.lz +trainer_backs/lucas_dp.NCGR.lz +trainer_backs/dawn_dp.NCGR.lz +trainer_backs/barry_dp.NCGR.lz +trainer_backs/cheryl.NCGR.lz +trainer_backs/riley.NCGR.lz +trainer_backs/marley.NCGR.lz +trainer_backs/buck.NCGR.lz +trainer_backs/mira.NCGR.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_cell.NCER.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +trainer_backs/shared_anim.NANR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/poke_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/master_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/ultra_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/great_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/safari_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/net_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/dive_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/nest_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/repeat_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/timer_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/luxury_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/premier_ball.NCGR.lz +ball_throws/quick_dusk_heal_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/quick_ball.NCGR.lz +ball_throws/quick_dusk_heal_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/dusk_ball.NCGR.lz +ball_throws/quick_dusk_heal_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/heal_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/cherish_ball.NCGR.lz +ball_throws/shared_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/park_ball.NCGR.lz +ball_throws/bait_anim.NANR.lz +ball_throws/shared_cell.NCER.lz +ball_throws/bait.NCGR.lz +ball_throws/mud_anim.NANR.lz +ball_throws/mud_cell.NCER.lz +ball_throws/mud.NCGR.lz +interface/top_stock.NCGR.lz +interface/top_stock_cell.NCER.lz +interface/top_stock_anim.NANR.lz diff --git a/res/graphics/battle/terrain/battle_arcade/all.pal b/res/graphics/battle/terrain/battle_arcade/all.pal new file mode 100644 index 0000000000..c4b1b53dc1 --- /dev/null +++ b/res/graphics/battle/terrain/battle_arcade/all.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 164 205 +255 213 255 +255 230 255 +255 189 230 +255 148 197 +222 131 172 +180 106 148 +139 90 115 +106 65 90 +65 49 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/terrain/battle_arcade/enemy.png b/res/graphics/battle/terrain/battle_arcade/enemy.png new file mode 100644 index 0000000000..e51faa3240 Binary files /dev/null and b/res/graphics/battle/terrain/battle_arcade/enemy.png differ diff --git a/res/graphics/battle/terrain/battle_arcade/meson.build b/res/graphics/battle/terrain/battle_arcade/meson.build new file mode 100644 index 0000000000..6477420ac1 --- /dev/null +++ b/res/graphics/battle/terrain/battle_arcade/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/battle_arcade/player.png b/res/graphics/battle/terrain/battle_arcade/player.png new file mode 100644 index 0000000000..be0e9277ee Binary files /dev/null and b/res/graphics/battle/terrain/battle_arcade/player.png differ diff --git a/res/graphics/battle/terrain/battle_castle/all.pal b/res/graphics/battle/terrain/battle_castle/all.pal new file mode 100644 index 0000000000..6945055b2e --- /dev/null +++ b/res/graphics/battle/terrain/battle_castle/all.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 197 172 +131 222 180 +131 230 189 +123 205 172 +115 180 156 +106 156 139 +90 123 115 +82 98 98 +74 74 82 +65 49 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/terrain/battle_castle/enemy.png b/res/graphics/battle/terrain/battle_castle/enemy.png new file mode 100644 index 0000000000..82432e2ccd Binary files /dev/null and b/res/graphics/battle/terrain/battle_castle/enemy.png differ diff --git a/res/graphics/battle/terrain/battle_castle/meson.build b/res/graphics/battle/terrain/battle_castle/meson.build new file mode 100644 index 0000000000..6477420ac1 --- /dev/null +++ b/res/graphics/battle/terrain/battle_castle/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/battle_castle/player.png b/res/graphics/battle/terrain/battle_castle/player.png new file mode 100644 index 0000000000..1cfe4f7d3f Binary files /dev/null and b/res/graphics/battle/terrain/battle_castle/player.png differ diff --git a/res/graphics/battle/terrain/battle_factory/all.pal b/res/graphics/battle/terrain/battle_factory/all.pal new file mode 100644 index 0000000000..c9d3ae1502 --- /dev/null +++ b/res/graphics/battle/terrain/battle_factory/all.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +90 164 172 +98 189 197 +106 197 205 +98 180 189 +98 156 164 +90 131 148 +82 115 123 +74 90 106 +74 65 82 +65 49 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/terrain/battle_factory/enemy.png b/res/graphics/battle/terrain/battle_factory/enemy.png new file mode 100644 index 0000000000..fdf403383f Binary files /dev/null and b/res/graphics/battle/terrain/battle_factory/enemy.png differ diff --git a/res/graphics/battle/terrain/battle_factory/meson.build b/res/graphics/battle/terrain/battle_factory/meson.build new file mode 100644 index 0000000000..6477420ac1 --- /dev/null +++ b/res/graphics/battle/terrain/battle_factory/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/battle_factory/player.png b/res/graphics/battle/terrain/battle_factory/player.png new file mode 100644 index 0000000000..8886064b7d Binary files /dev/null and b/res/graphics/battle/terrain/battle_factory/player.png differ diff --git a/res/graphics/battle/terrain/battle_hall/all.pal b/res/graphics/battle/terrain/battle_hall/all.pal new file mode 100644 index 0000000000..86264c385b --- /dev/null +++ b/res/graphics/battle/terrain/battle_hall/all.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 255 246 +246 255 255 +255 255 255 +238 255 255 +213 255 246 +189 255 238 +164 246 230 +131 180 180 +98 115 123 +65 49 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/terrain/battle_hall/enemy.png b/res/graphics/battle/terrain/battle_hall/enemy.png new file mode 100644 index 0000000000..bd1b08ca2d Binary files /dev/null and b/res/graphics/battle/terrain/battle_hall/enemy.png differ diff --git a/res/graphics/battle/terrain/battle_hall/meson.build b/res/graphics/battle/terrain/battle_hall/meson.build new file mode 100644 index 0000000000..93fccaca14 --- /dev/null +++ b/res/graphics/battle/terrain/battle_hall/meson.build @@ -0,0 +1,22 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/battle_hall/player.png b/res/graphics/battle/terrain/battle_hall/player.png new file mode 100644 index 0000000000..2c426dc4cc Binary files /dev/null and b/res/graphics/battle/terrain/battle_hall/player.png differ diff --git a/res/graphics/battle/terrain/battle_tower/all.pal b/res/graphics/battle/terrain/battle_tower/all.pal new file mode 100644 index 0000000000..78df4a812c --- /dev/null +++ b/res/graphics/battle/terrain/battle_tower/all.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +222 213 131 +238 230 139 +246 238 139 +222 213 131 +197 189 115 +172 156 106 +148 131 98 +115 106 90 +90 74 74 +65 49 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/battle/terrain/battle_tower/enemy.png b/res/graphics/battle/terrain/battle_tower/enemy.png new file mode 100644 index 0000000000..2cd4873bdb Binary files /dev/null and b/res/graphics/battle/terrain/battle_tower/enemy.png differ diff --git a/res/graphics/battle/terrain/battle_tower/meson.build b/res/graphics/battle/terrain/battle_tower/meson.build new file mode 100644 index 0000000000..6477420ac1 --- /dev/null +++ b/res/graphics/battle/terrain/battle_tower/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/battle_tower/player.png b/res/graphics/battle/terrain/battle_tower/player.png new file mode 100644 index 0000000000..59ba669f8f Binary files /dev/null and b/res/graphics/battle/terrain/battle_tower/player.png differ diff --git a/res/graphics/battle/terrain/cave/all.pal b/res/graphics/battle/terrain/cave/all.pal new file mode 100644 index 0000000000..6a487c1fff --- /dev/null +++ b/res/graphics/battle/terrain/cave/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +74 65 82 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +98 90 148 +98 98 148 +82 82 148 +82 74 123 +82 74 98 +74 74 82 +57 57 74 +41 49 65 +16 32 49 diff --git a/res/graphics/battle/terrain/cave/enemy.png b/res/graphics/battle/terrain/cave/enemy.png new file mode 100644 index 0000000000..40a110d4af Binary files /dev/null and b/res/graphics/battle/terrain/cave/enemy.png differ diff --git a/res/graphics/battle/terrain/cave/meson.build b/res/graphics/battle/terrain/cave/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/cave/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/cave/player.png b/res/graphics/battle/terrain/cave/player.png new file mode 100644 index 0000000000..15ab9150ab Binary files /dev/null and b/res/graphics/battle/terrain/cave/player.png differ diff --git a/res/graphics/battle/terrain/distortion_world/all.pal b/res/graphics/battle/terrain/distortion_world/all.pal new file mode 100644 index 0000000000..b3fe91eb30 --- /dev/null +++ b/res/graphics/battle/terrain/distortion_world/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 139 148 +213 156 156 +222 164 164 +205 148 148 +180 131 139 +156 115 123 +131 98 106 +106 82 90 +90 65 82 +65 49 65 diff --git a/res/graphics/battle/terrain/distortion_world/enemy.png b/res/graphics/battle/terrain/distortion_world/enemy.png new file mode 100644 index 0000000000..8cf6bb936c Binary files /dev/null and b/res/graphics/battle/terrain/distortion_world/enemy.png differ diff --git a/res/graphics/battle/terrain/distortion_world/meson.build b/res/graphics/battle/terrain/distortion_world/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/distortion_world/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/distortion_world/player.png b/res/graphics/battle/terrain/distortion_world/player.png new file mode 100644 index 0000000000..b8b57687e0 Binary files /dev/null and b/res/graphics/battle/terrain/distortion_world/player.png differ diff --git a/res/graphics/battle/terrain/enemy_anim.json b/res/graphics/battle/terrain/enemy_anim.json new file mode 100644 index 0000000000..1c1c988a64 --- /dev/null +++ b/res/graphics/battle/terrain/enemy_anim.json @@ -0,0 +1,24 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 1, + "frameCount": 1, + "sequences": [{ + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 0 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }], + "resultCount": 1, + "labels": ["CellAnime2"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/terrain/enemy_cell.json b/res/graphics/battle/terrain/enemy_cell.json new file mode 100644 index 0000000000..20fd666bdc --- /dev/null +++ b/res/graphics/battle/terrain/enemy_cell.json @@ -0,0 +1,66 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 18 + }, + "maxX": 64, + "maxY": 32, + "minX": -64, + "minY": -32, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime2"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/terrain/giratina/all.pal b/res/graphics/battle/terrain/giratina/all.pal new file mode 100644 index 0000000000..b3fe91eb30 --- /dev/null +++ b/res/graphics/battle/terrain/giratina/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 139 148 +213 156 156 +222 164 164 +205 148 148 +180 131 139 +156 115 123 +131 98 106 +106 82 90 +90 65 82 +65 49 65 diff --git a/res/graphics/battle/terrain/giratina/enemy.png b/res/graphics/battle/terrain/giratina/enemy.png new file mode 100644 index 0000000000..5ea10dce2c Binary files /dev/null and b/res/graphics/battle/terrain/giratina/enemy.png differ diff --git a/res/graphics/battle/terrain/giratina/meson.build b/res/graphics/battle/terrain/giratina/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/giratina/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/giratina/player.png b/res/graphics/battle/terrain/giratina/player.png new file mode 100644 index 0000000000..b8b57687e0 Binary files /dev/null and b/res/graphics/battle/terrain/giratina/player.png differ diff --git a/res/graphics/battle/terrain/grass/day.pal b/res/graphics/battle/terrain/grass/day.pal new file mode 100644 index 0000000000..53641c6ae7 --- /dev/null +++ b/res/graphics/battle/terrain/grass/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +90 74 32 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +164 213 82 +139 230 172 +123 222 156 +98 213 131 +74 189 106 +32 164 65 +0 0 0 +230 197 98 +197 164 74 +148 123 49 diff --git a/res/graphics/battle/terrain/grass/enemy.png b/res/graphics/battle/terrain/grass/enemy.png new file mode 100644 index 0000000000..8f74f6aa4b Binary files /dev/null and b/res/graphics/battle/terrain/grass/enemy.png differ diff --git a/res/graphics/battle/terrain/grass/evening.pal b/res/graphics/battle/terrain/grass/evening.pal new file mode 100644 index 0000000000..334193b6ad --- /dev/null +++ b/res/graphics/battle/terrain/grass/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 180 +123 57 24 +49 0 0 +49 0 0 +49 0 0 +49 0 0 +180 164 57 +164 180 123 +148 172 106 +131 164 90 +106 148 74 +74 131 41 +49 0 0 +238 156 65 +213 131 49 +172 98 32 diff --git a/res/graphics/battle/terrain/grass/meson.build b/res/graphics/battle/terrain/grass/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/grass/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/grass/night.pal b/res/graphics/battle/terrain/grass/night.pal new file mode 100644 index 0000000000..f55e48f4c3 --- /dev/null +++ b/res/graphics/battle/terrain/grass/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 131 255 +49 49 74 +0 0 41 +0 0 41 +0 0 41 +0 0 41 +98 139 115 +82 156 189 +65 148 172 +57 139 156 +41 123 131 +16 106 98 +0 0 41 +131 131 131 +115 106 106 +82 82 82 diff --git a/res/graphics/battle/terrain/grass/player.png b/res/graphics/battle/terrain/grass/player.png new file mode 100644 index 0000000000..d0acdc2130 Binary files /dev/null and b/res/graphics/battle/terrain/grass/player.png differ diff --git a/res/graphics/battle/terrain/ice/day.pal b/res/graphics/battle/terrain/ice/day.pal new file mode 100644 index 0000000000..6a6e400dab --- /dev/null +++ b/res/graphics/battle/terrain/ice/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +115 90 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +180 189 255 +180 205 255 +180 213 255 +205 230 255 +222 238 255 +238 246 255 +255 255 255 +213 205 230 +156 139 180 +98 65 131 diff --git a/res/graphics/battle/terrain/ice/enemy.png b/res/graphics/battle/terrain/ice/enemy.png new file mode 100644 index 0000000000..da80a68d3d Binary files /dev/null and b/res/graphics/battle/terrain/ice/enemy.png differ diff --git a/res/graphics/battle/terrain/ice/evening.pal b/res/graphics/battle/terrain/ice/evening.pal new file mode 100644 index 0000000000..d0c554b821 --- /dev/null +++ b/res/graphics/battle/terrain/ice/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 139 180 +139 65 106 +41 0 0 +41 0 0 +41 0 0 +41 0 0 +197 131 180 +197 148 180 +197 156 180 +213 164 180 +230 172 180 +246 172 180 +255 180 180 +222 148 164 +172 98 131 +123 41 90 diff --git a/res/graphics/battle/terrain/ice/meson.build b/res/graphics/battle/terrain/ice/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/ice/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/ice/night.pal b/res/graphics/battle/terrain/ice/night.pal new file mode 100644 index 0000000000..878d7cd9c5 --- /dev/null +++ b/res/graphics/battle/terrain/ice/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 123 238 +57 49 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +98 115 238 +98 123 238 +98 131 238 +115 139 238 +123 148 238 +131 148 238 +139 156 238 +115 123 222 +82 90 172 +41 32 115 diff --git a/res/graphics/battle/terrain/ice/player.png b/res/graphics/battle/terrain/ice/player.png new file mode 100644 index 0000000000..69ceae1c34 Binary files /dev/null and b/res/graphics/battle/terrain/ice/player.png differ diff --git a/res/graphics/battle/terrain/indoors/all.pal b/res/graphics/battle/terrain/indoors/all.pal new file mode 100644 index 0000000000..65e133bd11 --- /dev/null +++ b/res/graphics/battle/terrain/indoors/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 205 213 +230 222 230 +238 230 238 +222 213 222 +205 197 205 +189 172 189 +172 156 164 +139 123 131 +98 82 98 +65 49 65 diff --git a/res/graphics/battle/terrain/indoors/enemy.png b/res/graphics/battle/terrain/indoors/enemy.png new file mode 100644 index 0000000000..385cda15f7 Binary files /dev/null and b/res/graphics/battle/terrain/indoors/enemy.png differ diff --git a/res/graphics/battle/terrain/indoors/meson.build b/res/graphics/battle/terrain/indoors/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/indoors/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/indoors/player.png b/res/graphics/battle/terrain/indoors/player.png new file mode 100644 index 0000000000..576bcf043b Binary files /dev/null and b/res/graphics/battle/terrain/indoors/player.png differ diff --git a/res/graphics/battle/terrain/league_aaron/all.pal b/res/graphics/battle/terrain/league_aaron/all.pal new file mode 100644 index 0000000000..71f0870d48 --- /dev/null +++ b/res/graphics/battle/terrain/league_aaron/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 230 213 +213 238 230 +230 246 238 +205 230 222 +189 222 205 +156 205 189 +131 189 197 +90 164 172 +57 115 98 +32 74 57 diff --git a/res/graphics/battle/terrain/league_aaron/enemy.png b/res/graphics/battle/terrain/league_aaron/enemy.png new file mode 100644 index 0000000000..3944b0d7f9 Binary files /dev/null and b/res/graphics/battle/terrain/league_aaron/enemy.png differ diff --git a/res/graphics/battle/terrain/league_aaron/meson.build b/res/graphics/battle/terrain/league_aaron/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/league_aaron/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/league_aaron/player.png b/res/graphics/battle/terrain/league_aaron/player.png new file mode 100644 index 0000000000..c04aedf170 Binary files /dev/null and b/res/graphics/battle/terrain/league_aaron/player.png differ diff --git a/res/graphics/battle/terrain/league_bertha/all.pal b/res/graphics/battle/terrain/league_bertha/all.pal new file mode 100644 index 0000000000..09772dc073 --- /dev/null +++ b/res/graphics/battle/terrain/league_bertha/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +222 213 197 +238 230 213 +246 238 230 +230 222 205 +222 205 180 +205 180 156 +197 197 131 +164 172 90 +115 90 57 +74 57 32 diff --git a/res/graphics/battle/terrain/league_bertha/enemy.png b/res/graphics/battle/terrain/league_bertha/enemy.png new file mode 100644 index 0000000000..93e1b5892d Binary files /dev/null and b/res/graphics/battle/terrain/league_bertha/enemy.png differ diff --git a/res/graphics/battle/terrain/league_bertha/meson.build b/res/graphics/battle/terrain/league_bertha/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/league_bertha/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/league_bertha/player.png b/res/graphics/battle/terrain/league_bertha/player.png new file mode 100644 index 0000000000..6791ebd9f1 Binary files /dev/null and b/res/graphics/battle/terrain/league_bertha/player.png differ diff --git a/res/graphics/battle/terrain/league_cynthia/all.pal b/res/graphics/battle/terrain/league_cynthia/all.pal new file mode 100644 index 0000000000..2d40f1065f --- /dev/null +++ b/res/graphics/battle/terrain/league_cynthia/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 255 +139 131 172 +156 148 180 +156 156 189 +213 213 222 +197 197 213 +180 180 205 +172 164 197 +213 172 213 +222 197 222 +238 213 238 +246 238 246 +255 255 255 +222 213 230 +180 180 205 +82 82 115 diff --git a/res/graphics/battle/terrain/league_cynthia/enemy.png b/res/graphics/battle/terrain/league_cynthia/enemy.png new file mode 100644 index 0000000000..a94325295b Binary files /dev/null and b/res/graphics/battle/terrain/league_cynthia/enemy.png differ diff --git a/res/graphics/battle/terrain/league_cynthia/meson.build b/res/graphics/battle/terrain/league_cynthia/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/league_cynthia/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/league_cynthia/player.png b/res/graphics/battle/terrain/league_cynthia/player.png new file mode 100644 index 0000000000..a88b846521 Binary files /dev/null and b/res/graphics/battle/terrain/league_cynthia/player.png differ diff --git a/res/graphics/battle/terrain/league_flint/all.pal b/res/graphics/battle/terrain/league_flint/all.pal new file mode 100644 index 0000000000..a1485fed8d --- /dev/null +++ b/res/graphics/battle/terrain/league_flint/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +222 197 205 +238 213 222 +246 230 230 +230 205 213 +222 180 197 +205 156 172 +197 139 131 +172 106 90 +115 57 74 +74 32 41 diff --git a/res/graphics/battle/terrain/league_flint/enemy.png b/res/graphics/battle/terrain/league_flint/enemy.png new file mode 100644 index 0000000000..ad859f7aa4 Binary files /dev/null and b/res/graphics/battle/terrain/league_flint/enemy.png differ diff --git a/res/graphics/battle/terrain/league_flint/meson.build b/res/graphics/battle/terrain/league_flint/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/league_flint/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/league_flint/player.png b/res/graphics/battle/terrain/league_flint/player.png new file mode 100644 index 0000000000..91741df801 Binary files /dev/null and b/res/graphics/battle/terrain/league_flint/player.png differ diff --git a/res/graphics/battle/terrain/league_lucian/all.pal b/res/graphics/battle/terrain/league_lucian/all.pal new file mode 100644 index 0000000000..bce4da7263 --- /dev/null +++ b/res/graphics/battle/terrain/league_lucian/all.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 197 222 +213 213 238 +230 230 246 +205 205 230 +189 180 222 +156 156 205 +164 131 197 +139 90 172 +65 57 115 +32 32 74 diff --git a/res/graphics/battle/terrain/league_lucian/enemy.png b/res/graphics/battle/terrain/league_lucian/enemy.png new file mode 100644 index 0000000000..f1a9699d6f Binary files /dev/null and b/res/graphics/battle/terrain/league_lucian/enemy.png differ diff --git a/res/graphics/battle/terrain/league_lucian/meson.build b/res/graphics/battle/terrain/league_lucian/meson.build new file mode 100644 index 0000000000..1891a6f665 --- /dev/null +++ b/res/graphics/battle/terrain/league_lucian/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('all.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/league_lucian/player.png b/res/graphics/battle/terrain/league_lucian/player.png new file mode 100644 index 0000000000..2fe280d72f Binary files /dev/null and b/res/graphics/battle/terrain/league_lucian/player.png differ diff --git a/res/graphics/battle/terrain/meson.build b/res/graphics/battle/terrain/meson.build new file mode 100644 index 0000000000..e3fc245983 --- /dev/null +++ b/res/graphics/battle/terrain/meson.build @@ -0,0 +1,38 @@ +player_cell = files('player_cell.json')[0] +enemy_cell = files('enemy_cell.json')[0] + +battle_sprites += [ + ncer_lz_gen.process( + player_cell, enemy_cell, + preserve_path_from: base_directory, + ), + + nanr_lz_gen.process( + files('player_anim.json', 'enemy_anim.json'), + preserve_path_from: base_directory, + ), +] + +subdir('battle_arcade') +subdir('battle_castle') +subdir('battle_factory') +subdir('battle_hall') +subdir('battle_tower') +subdir('cave') +subdir('distortion_world') +subdir('giratina') +subdir('grass') +subdir('ice') +subdir('indoors') +subdir('league_aaron') +subdir('league_bertha') +subdir('league_cynthia') +subdir('league_flint') +subdir('league_lucian') +subdir('mud') +subdir('path') +subdir('path_puddles') +subdir('rocky') +subdir('sand') +subdir('snow') +subdir('water') diff --git a/res/graphics/battle/terrain/mud/day.pal b/res/graphics/battle/terrain/mud/day.pal new file mode 100644 index 0000000000..8e9f1edcfc --- /dev/null +++ b/res/graphics/battle/terrain/mud/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +180 139 131 +172 131 131 +164 123 123 +156 115 115 +148 106 106 +139 106 106 +131 98 98 +115 82 90 +106 65 74 +65 41 49 diff --git a/res/graphics/battle/terrain/mud/enemy.png b/res/graphics/battle/terrain/mud/enemy.png new file mode 100644 index 0000000000..d5930e3949 Binary files /dev/null and b/res/graphics/battle/terrain/mud/enemy.png differ diff --git a/res/graphics/battle/terrain/mud/evening.pal b/res/graphics/battle/terrain/mud/evening.pal new file mode 100644 index 0000000000..f8f31f7802 --- /dev/null +++ b/res/graphics/battle/terrain/mud/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 172 230 +41 0 0 +41 0 0 +41 0 0 +41 0 0 +41 0 0 +197 115 115 +189 106 115 +180 106 106 +172 98 98 +164 90 98 +164 90 98 +156 82 90 +139 65 82 +131 57 65 +98 32 41 diff --git a/res/graphics/battle/terrain/mud/meson.build b/res/graphics/battle/terrain/mud/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/mud/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/mud/night.pal b/res/graphics/battle/terrain/mud/night.pal new file mode 100644 index 0000000000..4e1b77c6b2 --- /dev/null +++ b/res/graphics/battle/terrain/mud/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 238 +0 0 41 +0 0 41 +0 0 41 +0 0 41 +0 0 41 +148 123 139 +139 115 139 +131 106 139 +123 98 131 +115 90 123 +106 90 123 +106 82 115 +90 65 106 +82 57 98 +49 32 82 diff --git a/res/graphics/battle/terrain/mud/player.png b/res/graphics/battle/terrain/mud/player.png new file mode 100644 index 0000000000..9bb21318fc Binary files /dev/null and b/res/graphics/battle/terrain/mud/player.png differ diff --git a/res/graphics/battle/terrain/path/day.pal b/res/graphics/battle/terrain/path/day.pal new file mode 100644 index 0000000000..6bb31bae4c --- /dev/null +++ b/res/graphics/battle/terrain/path/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +131 106 32 +115 98 41 +180 222 164 +238 213 180 +238 222 189 +213 156 131 +222 205 164 +230 205 164 +222 197 164 +213 180 156 +205 205 164 +189 230 164 +156 189 115 +131 139 65 +98 82 24 diff --git a/res/graphics/battle/terrain/path/enemy.png b/res/graphics/battle/terrain/path/enemy.png new file mode 100644 index 0000000000..4d1e4f4ead Binary files /dev/null and b/res/graphics/battle/terrain/path/enemy.png differ diff --git a/res/graphics/battle/terrain/path/evening.pal b/res/graphics/battle/terrain/path/evening.pal new file mode 100644 index 0000000000..76d5fdca5a --- /dev/null +++ b/res/graphics/battle/terrain/path/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 255 164 +123 32 49 +115 32 49 +222 205 115 +238 180 139 +238 189 139 +213 131 131 +222 164 123 +230 164 131 +222 164 131 +213 156 131 +205 164 115 +230 205 115 +189 148 82 +139 65 57 +98 16 41 diff --git a/res/graphics/battle/terrain/path/meson.build b/res/graphics/battle/terrain/path/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/path/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/path/night.pal b/res/graphics/battle/terrain/path/night.pal new file mode 100644 index 0000000000..c00b45bc61 --- /dev/null +++ b/res/graphics/battle/terrain/path/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 180 131 +24 24 82 +32 41 82 +123 164 148 +131 131 164 +139 139 164 +115 98 131 +123 123 156 +123 123 156 +123 115 148 +123 106 131 +123 131 139 +123 172 156 +82 123 131 +49 74 98 +16 24 65 diff --git a/res/graphics/battle/terrain/path/player.png b/res/graphics/battle/terrain/path/player.png new file mode 100644 index 0000000000..35ac512c01 Binary files /dev/null and b/res/graphics/battle/terrain/path/player.png differ diff --git a/res/graphics/battle/terrain/path_puddles/day.pal b/res/graphics/battle/terrain/path_puddles/day.pal new file mode 100644 index 0000000000..141d0d9667 --- /dev/null +++ b/res/graphics/battle/terrain/path_puddles/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +139 205 255 +115 197 255 +82 180 246 +238 213 180 +238 222 189 +213 156 131 +189 205 213 +230 205 164 +222 197 164 +213 180 156 +205 205 164 +189 230 164 +156 189 115 +131 139 65 +98 82 24 diff --git a/res/graphics/battle/terrain/path_puddles/enemy.png b/res/graphics/battle/terrain/path_puddles/enemy.png new file mode 100644 index 0000000000..726fe20442 Binary files /dev/null and b/res/graphics/battle/terrain/path_puddles/enemy.png differ diff --git a/res/graphics/battle/terrain/path_puddles/evening.pal b/res/graphics/battle/terrain/path_puddles/evening.pal new file mode 100644 index 0000000000..35281ffe45 --- /dev/null +++ b/res/graphics/battle/terrain/path_puddles/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 238 +172 164 238 +148 156 238 +123 139 230 +246 164 172 +246 172 180 +230 123 123 +205 164 197 +238 164 156 +230 156 156 +230 139 148 +222 164 156 +205 180 156 +180 148 106 +164 106 57 +139 65 16 diff --git a/res/graphics/battle/terrain/path_puddles/meson.build b/res/graphics/battle/terrain/path_puddles/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/path_puddles/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/path_puddles/night.pal b/res/graphics/battle/terrain/path_puddles/night.pal new file mode 100644 index 0000000000..ff1141a235 --- /dev/null +++ b/res/graphics/battle/terrain/path_puddles/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 115 238 +57 115 238 +49 115 238 +32 106 230 +106 123 172 +106 131 180 +98 90 123 +82 115 197 +106 115 156 +98 115 156 +98 106 148 +90 115 156 +82 131 156 +65 106 106 +57 82 57 +41 49 16 diff --git a/res/graphics/battle/terrain/path_puddles/player.png b/res/graphics/battle/terrain/path_puddles/player.png new file mode 100644 index 0000000000..01bd312114 Binary files /dev/null and b/res/graphics/battle/terrain/path_puddles/player.png differ diff --git a/res/graphics/battle/terrain/player_anim.json b/res/graphics/battle/terrain/player_anim.json new file mode 100644 index 0000000000..80d6408641 --- /dev/null +++ b/res/graphics/battle/terrain/player_anim.json @@ -0,0 +1,24 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 1, + "frameCount": 1, + "sequences": [{ + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 0 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }], + "resultCount": 1, + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/terrain/player_cell.json b/res/graphics/battle/terrain/player_cell.json new file mode 100644 index 0000000000..fa96c9a7e0 --- /dev/null +++ b/res/graphics/battle/terrain/player_cell.json @@ -0,0 +1,106 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 32 + }, + "maxX": 128, + "maxY": 16, + "minX": -128, + "minY": -16, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -128, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 64, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/terrain/rocky/day.pal b/res/graphics/battle/terrain/rocky/day.pal new file mode 100644 index 0000000000..b6e2b848b4 --- /dev/null +++ b/res/graphics/battle/terrain/rocky/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +131 106 32 +180 156 139 +148 139 148 +131 123 131 +90 82 65 +131 131 123 +106 106 98 +98 90 82 +197 164 148 +172 148 115 +148 123 82 +131 106 57 +115 98 32 +82 74 32 +49 32 16 diff --git a/res/graphics/battle/terrain/rocky/enemy.png b/res/graphics/battle/terrain/rocky/enemy.png new file mode 100644 index 0000000000..23555d1ebd Binary files /dev/null and b/res/graphics/battle/terrain/rocky/enemy.png differ diff --git a/res/graphics/battle/terrain/rocky/evening.pal b/res/graphics/battle/terrain/rocky/evening.pal new file mode 100644 index 0000000000..288aea2c10 --- /dev/null +++ b/res/graphics/battle/terrain/rocky/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +139 65 16 +189 123 82 +156 115 82 +139 98 74 +98 57 32 +139 106 65 +115 82 57 +106 65 49 +205 131 82 +180 115 65 +156 90 49 +139 74 32 +123 65 16 +98 49 16 +65 16 8 diff --git a/res/graphics/battle/terrain/rocky/meson.build b/res/graphics/battle/terrain/rocky/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/rocky/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/rocky/night.pal b/res/graphics/battle/terrain/rocky/night.pal new file mode 100644 index 0000000000..1660ad2c10 --- /dev/null +++ b/res/graphics/battle/terrain/rocky/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +16 49 115 +82 90 156 +82 90 131 +74 82 115 +32 49 82 +65 82 115 +57 65 98 +49 49 82 +82 98 172 +65 82 148 +49 65 131 +32 57 115 +16 49 106 +16 32 82 +8 16 49 diff --git a/res/graphics/battle/terrain/rocky/player.png b/res/graphics/battle/terrain/rocky/player.png new file mode 100644 index 0000000000..b3989ae434 Binary files /dev/null and b/res/graphics/battle/terrain/rocky/player.png differ diff --git a/res/graphics/battle/terrain/sand/day.pal b/res/graphics/battle/terrain/sand/day.pal new file mode 100644 index 0000000000..4e9d466a43 --- /dev/null +++ b/res/graphics/battle/terrain/sand/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 189 123 +222 197 123 +230 205 123 +238 213 139 +246 222 156 +246 230 172 +197 180 123 +139 123 82 +90 65 32 diff --git a/res/graphics/battle/terrain/sand/enemy.png b/res/graphics/battle/terrain/sand/enemy.png new file mode 100644 index 0000000000..a1b399f8dd Binary files /dev/null and b/res/graphics/battle/terrain/sand/enemy.png differ diff --git a/res/graphics/battle/terrain/sand/evening.pal b/res/graphics/battle/terrain/sand/evening.pal new file mode 100644 index 0000000000..e073edec07 --- /dev/null +++ b/res/graphics/battle/terrain/sand/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 255 +57 0 0 +57 0 0 +57 0 0 +57 0 0 +57 0 0 +57 0 0 +222 148 123 +230 156 123 +238 164 123 +246 164 139 +255 172 156 +255 180 172 +213 139 123 +164 98 82 +123 49 32 diff --git a/res/graphics/battle/terrain/sand/meson.build b/res/graphics/battle/terrain/sand/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/sand/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/sand/night.pal b/res/graphics/battle/terrain/sand/night.pal new file mode 100644 index 0000000000..4ab0710b2c --- /dev/null +++ b/res/graphics/battle/terrain/sand/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 98 255 +32 0 65 +32 0 65 +32 0 65 +32 0 65 +32 0 65 +32 0 65 +148 90 156 +156 98 156 +164 98 156 +164 106 172 +172 106 180 +172 115 197 +139 90 156 +115 57 123 +82 32 90 diff --git a/res/graphics/battle/terrain/sand/player.png b/res/graphics/battle/terrain/sand/player.png new file mode 100644 index 0000000000..102bf673fb Binary files /dev/null and b/res/graphics/battle/terrain/sand/player.png differ diff --git a/res/graphics/battle/terrain/snow/day.pal b/res/graphics/battle/terrain/snow/day.pal new file mode 100644 index 0000000000..2cd9657ad3 --- /dev/null +++ b/res/graphics/battle/terrain/snow/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 197 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 238 246 +255 255 255 +238 230 238 +222 213 222 +205 189 205 +189 172 189 +156 139 156 +90 65 90 diff --git a/res/graphics/battle/terrain/snow/enemy.png b/res/graphics/battle/terrain/snow/enemy.png new file mode 100644 index 0000000000..8c0edcba5b Binary files /dev/null and b/res/graphics/battle/terrain/snow/enemy.png differ diff --git a/res/graphics/battle/terrain/snow/evening.pal b/res/graphics/battle/terrain/snow/evening.pal new file mode 100644 index 0000000000..89373e6337 --- /dev/null +++ b/res/graphics/battle/terrain/snow/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 148 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 180 180 +255 189 189 +238 172 180 +222 156 164 +205 139 156 +189 131 139 +156 106 115 +90 49 65 diff --git a/res/graphics/battle/terrain/snow/meson.build b/res/graphics/battle/terrain/snow/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/snow/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/snow/night.pal b/res/graphics/battle/terrain/snow/night.pal new file mode 100644 index 0000000000..2bd50961f1 --- /dev/null +++ b/res/graphics/battle/terrain/snow/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 115 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 139 180 +148 148 189 +139 131 180 +131 123 164 +115 106 156 +106 98 139 +90 82 115 +49 32 65 diff --git a/res/graphics/battle/terrain/snow/player.png b/res/graphics/battle/terrain/snow/player.png new file mode 100644 index 0000000000..e1d86f184e Binary files /dev/null and b/res/graphics/battle/terrain/snow/player.png differ diff --git a/res/graphics/battle/terrain/water/day.pal b/res/graphics/battle/terrain/water/day.pal new file mode 100644 index 0000000000..c306c38a11 --- /dev/null +++ b/res/graphics/battle/terrain/water/day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 106 255 +0 0 0 +0 0 0 +148 205 255 +123 189 255 +90 172 255 +90 156 255 +82 148 238 +74 131 213 +57 115 205 +32 115 189 +16 106 172 +0 106 148 +0 90 123 +0 65 106 +0 49 82 diff --git a/res/graphics/battle/terrain/water/enemy.png b/res/graphics/battle/terrain/water/enemy.png new file mode 100644 index 0000000000..77561d1447 Binary files /dev/null and b/res/graphics/battle/terrain/water/enemy.png differ diff --git a/res/graphics/battle/terrain/water/evening.pal b/res/graphics/battle/terrain/water/evening.pal new file mode 100644 index 0000000000..d3d7e5a23c --- /dev/null +++ b/res/graphics/battle/terrain/water/evening.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 106 255 +0 0 0 +0 0 0 +255 164 148 +255 139 115 +255 115 74 +238 106 82 +230 106 74 +213 98 65 +205 90 49 +189 74 49 +164 49 49 +148 32 57 +123 24 32 +98 8 16 +74 0 0 diff --git a/res/graphics/battle/terrain/water/meson.build b/res/graphics/battle/terrain/water/meson.build new file mode 100644 index 0000000000..0ac0a3c06f --- /dev/null +++ b/res/graphics/battle/terrain/water/meson.build @@ -0,0 +1,23 @@ +battle_sprites += [ + nclr_gen.process( + files('day.pal', 'evening.pal', 'night.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + ncgr_lz_gen.process( + files('player.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', player_cell.full_path(), + ], + ), + ncgr_lz_gen.process( + files('enemy.png'), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-cell', enemy_cell.full_path(), + ], + ), +] diff --git a/res/graphics/battle/terrain/water/night.pal b/res/graphics/battle/terrain/water/night.pal new file mode 100644 index 0000000000..ada6f1c36e --- /dev/null +++ b/res/graphics/battle/terrain/water/night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 106 255 +0 0 0 +0 0 0 +115 115 205 +98 98 197 +82 82 197 +57 57 189 +65 57 189 +57 49 172 +57 41 164 +41 41 148 +32 49 131 +24 57 115 +16 41 90 +8 24 74 +0 8 57 diff --git a/res/graphics/battle/terrain/water/player.png b/res/graphics/battle/terrain/water/player.png new file mode 100644 index 0000000000..4e210d7bde Binary files /dev/null and b/res/graphics/battle/terrain/water/player.png differ diff --git a/res/graphics/battle/trainer_backs/barry_dp.png b/res/graphics/battle/trainer_backs/barry_dp.png new file mode 100644 index 0000000000..787c31dcbe Binary files /dev/null and b/res/graphics/battle/trainer_backs/barry_dp.png differ diff --git a/res/graphics/battle/trainer_backs/buck.png b/res/graphics/battle/trainer_backs/buck.png new file mode 100644 index 0000000000..24eb7fea2c Binary files /dev/null and b/res/graphics/battle/trainer_backs/buck.png differ diff --git a/res/graphics/battle/trainer_backs/cheryl.png b/res/graphics/battle/trainer_backs/cheryl.png new file mode 100644 index 0000000000..c1095c14f1 Binary files /dev/null and b/res/graphics/battle/trainer_backs/cheryl.png differ diff --git a/res/graphics/battle/trainer_backs/dawn_dp.png b/res/graphics/battle/trainer_backs/dawn_dp.png new file mode 100644 index 0000000000..053943d193 Binary files /dev/null and b/res/graphics/battle/trainer_backs/dawn_dp.png differ diff --git a/res/graphics/battle/trainer_backs/lucas_dp.png b/res/graphics/battle/trainer_backs/lucas_dp.png new file mode 100644 index 0000000000..853a987a26 Binary files /dev/null and b/res/graphics/battle/trainer_backs/lucas_dp.png differ diff --git a/res/graphics/battle/trainer_backs/marley.png b/res/graphics/battle/trainer_backs/marley.png new file mode 100644 index 0000000000..acef576262 Binary files /dev/null and b/res/graphics/battle/trainer_backs/marley.png differ diff --git a/res/graphics/battle/trainer_backs/meson.build b/res/graphics/battle/trainer_backs/meson.build new file mode 100644 index 0000000000..09907eea57 --- /dev/null +++ b/res/graphics/battle/trainer_backs/meson.build @@ -0,0 +1,39 @@ +shared_cell = files('shared_cell.json') + +battle_sprites += [ + nclr_gen.process( + files( + 'lucas_dp.png', + 'dawn_dp.png', + 'barry_dp.png', + 'cheryl.png', + 'riley.png', + 'marley.png', + 'buck.png', + 'mira.png', + ), + preserve_path_from: base_directory, + extra_args: [ '-bitdepth', '4' ], + ), + + ncgr_lz_gen.process( + files( + 'lucas_dp.png', + 'dawn_dp.png', + 'barry_dp.png', + 'cheryl.png', + 'riley.png', + 'marley.png', + 'buck.png', + 'mira.png', + ), + preserve_path_from: base_directory, + extra_args: [ + '-bitdepth', '4', '-clobbersize', '-mappingtype', '64', + '-vram', '-cell', shared_cell[0].full_path(), + ], + ), + + ncer_lz_gen.process(shared_cell, preserve_path_from: base_directory), + nanr_lz_gen.process(files('shared_anim.json'), preserve_path_from: base_directory), +] diff --git a/res/graphics/battle/trainer_backs/mira.png b/res/graphics/battle/trainer_backs/mira.png new file mode 100644 index 0000000000..ab116c6937 Binary files /dev/null and b/res/graphics/battle/trainer_backs/mira.png differ diff --git a/res/graphics/battle/trainer_backs/riley.png b/res/graphics/battle/trainer_backs/riley.png new file mode 100644 index 0000000000..c9d9420085 Binary files /dev/null and b/res/graphics/battle/trainer_backs/riley.png differ diff --git a/res/graphics/battle/trainer_backs/shared_anim.json b/res/graphics/battle/trainer_backs/shared_anim.json new file mode 100644 index 0000000000..09fc30d3c7 --- /dev/null +++ b/res/graphics/battle/trainer_backs/shared_anim.json @@ -0,0 +1,48 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 1, + "frameCount": 5, + "sequences": [{ + "frameCount": 5, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 1, + "resultId": 0 + }, { + "frameDelay": 9, + "resultId": 1 + }, { + "frameDelay": 4, + "resultId": 2 + }, { + "frameDelay": 4, + "resultId": 3 + }, { + "frameDelay": 30, + "resultId": 4 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }], + "resultCount": 5, + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/trainer_backs/shared_cell.json b/res/graphics/battle/trainer_backs/shared_cell.json new file mode 100644 index 0000000000..07f762acda --- /dev/null +++ b/res/graphics/battle/trainer_backs/shared_cell.json @@ -0,0 +1,699 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": true, + "ucatEnabled": false, + "cellCount": 5, + "mappingType": 1, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 40, + "maxY": 40, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 40, + "maxY": 40, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 40, + "maxY": 40, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 17 + }, + "maxX": 56, + "maxY": 40, + "minX": -24, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -24, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 40, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 17 + }, + "maxX": 56, + "maxY": 40, + "minX": -24, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": -24, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -40, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 40, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 36, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 40, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 44, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 40, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1, + "vramTransferMaxSize": 3200, + "transferData": [{ + "offset": 0, + "size": 3200 + }, { + "offset": 3200, + "size": 3200 + }, { + "offset": 6400, + "size": 3200 + }, { + "offset": 9600, + "size": 3200 + }, { + "offset": 12800, + "size": 3200 + }] +} \ No newline at end of file diff --git a/res/graphics/battle/type_icons/beauty.png b/res/graphics/battle/type_icons/beauty.png new file mode 100644 index 0000000000..c63d2533db Binary files /dev/null and b/res/graphics/battle/type_icons/beauty.png differ diff --git a/res/graphics/battle/type_icons/bug.png b/res/graphics/battle/type_icons/bug.png new file mode 100644 index 0000000000..4a97d5e081 Binary files /dev/null and b/res/graphics/battle/type_icons/bug.png differ diff --git a/res/graphics/battle/type_icons/cell.json b/res/graphics/battle/type_icons/cell.json new file mode 100644 index 0000000000..f6c361ab24 --- /dev/null +++ b/res/graphics/battle/type_icons/cell.json @@ -0,0 +1,42 @@ +{ + "labelEnabled": true, + "dontPadKbec": true, + "extended": false, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 1, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 5 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0"], + "labelCount": 1 +} \ No newline at end of file diff --git a/res/graphics/battle/type_icons/cool.png b/res/graphics/battle/type_icons/cool.png new file mode 100644 index 0000000000..fd04207e4f Binary files /dev/null and b/res/graphics/battle/type_icons/cool.png differ diff --git a/res/graphics/battle/type_icons/cute.png b/res/graphics/battle/type_icons/cute.png new file mode 100644 index 0000000000..c0a96c8fab Binary files /dev/null and b/res/graphics/battle/type_icons/cute.png differ diff --git a/res/graphics/battle/type_icons/dark.png b/res/graphics/battle/type_icons/dark.png new file mode 100644 index 0000000000..d5d5ff6abe Binary files /dev/null and b/res/graphics/battle/type_icons/dark.png differ diff --git a/res/graphics/battle/type_icons/dragon.png b/res/graphics/battle/type_icons/dragon.png new file mode 100644 index 0000000000..4fd67a5221 Binary files /dev/null and b/res/graphics/battle/type_icons/dragon.png differ diff --git a/res/graphics/battle/type_icons/electric.png b/res/graphics/battle/type_icons/electric.png new file mode 100644 index 0000000000..61741ae8f5 Binary files /dev/null and b/res/graphics/battle/type_icons/electric.png differ diff --git a/res/graphics/battle/type_icons/fighting.png b/res/graphics/battle/type_icons/fighting.png new file mode 100644 index 0000000000..f9f5959ca0 Binary files /dev/null and b/res/graphics/battle/type_icons/fighting.png differ diff --git a/res/graphics/battle/type_icons/fire.png b/res/graphics/battle/type_icons/fire.png new file mode 100644 index 0000000000..acb56d1070 Binary files /dev/null and b/res/graphics/battle/type_icons/fire.png differ diff --git a/res/graphics/battle/type_icons/flying.png b/res/graphics/battle/type_icons/flying.png new file mode 100644 index 0000000000..7aedfd02f8 Binary files /dev/null and b/res/graphics/battle/type_icons/flying.png differ diff --git a/res/graphics/battle/type_icons/ghost.png b/res/graphics/battle/type_icons/ghost.png new file mode 100644 index 0000000000..7ede387a38 Binary files /dev/null and b/res/graphics/battle/type_icons/ghost.png differ diff --git a/res/graphics/battle/type_icons/grass.png b/res/graphics/battle/type_icons/grass.png new file mode 100644 index 0000000000..7fc93d9444 Binary files /dev/null and b/res/graphics/battle/type_icons/grass.png differ diff --git a/res/graphics/battle/type_icons/ground.png b/res/graphics/battle/type_icons/ground.png new file mode 100644 index 0000000000..0769a2a0ed Binary files /dev/null and b/res/graphics/battle/type_icons/ground.png differ diff --git a/res/graphics/battle/type_icons/ice.png b/res/graphics/battle/type_icons/ice.png new file mode 100644 index 0000000000..2d592809f9 Binary files /dev/null and b/res/graphics/battle/type_icons/ice.png differ diff --git a/res/graphics/battle/type_icons/meson.build b/res/graphics/battle/type_icons/meson.build new file mode 100644 index 0000000000..d03e13f068 --- /dev/null +++ b/res/graphics/battle/type_icons/meson.build @@ -0,0 +1,49 @@ +battle_sprites += [ + nclr_gen.process( + files('shared.pal'), + preserve_path_from: base_directory, + extra_args: [ '-nopad', '-invertsize', '-pcmp', '-bitdepth', '4' ], + ), + + ncgr_lz_gen.process( + files( + 'beauty.png', + 'cute.png', + 'dragon.png', + 'electric.png', + 'psychic.png', + 'dark.png', + 'fighting.png', + 'fire.png', + 'flying.png', + 'ghost.png', + 'ground.png', + 'ice.png', + 'bug.png', + 'smart.png', + 'grass.png', + 'normal.png', + 'poison.png', + 'mystery.png', + 'rock.png', + 'steel.png', + 'tough.png', + 'cool.png', + 'water.png', + ), + extra_args: [ '-bitdepth', '4', '-version101', '-clobbersize' ], + preserve_path_from: base_directory, + ), + + ncgr_lz_gen.process( + files( + 'physical.png', + 'status.png', + 'special.png', + ), + extra_args: [ '-bitdepth', '4', '-clobbersize' ], + preserve_path_from: base_directory, + ), + + ncer_lz_gen.process(files('cell.json'), preserve_path_from: base_directory), +] diff --git a/res/graphics/battle/type_icons/mystery.png b/res/graphics/battle/type_icons/mystery.png new file mode 100644 index 0000000000..945590bee5 Binary files /dev/null and b/res/graphics/battle/type_icons/mystery.png differ diff --git a/res/graphics/battle/type_icons/normal.png b/res/graphics/battle/type_icons/normal.png new file mode 100644 index 0000000000..8ff583e432 Binary files /dev/null and b/res/graphics/battle/type_icons/normal.png differ diff --git a/res/graphics/battle/type_icons/physical.png b/res/graphics/battle/type_icons/physical.png new file mode 100644 index 0000000000..dccd216a4c Binary files /dev/null and b/res/graphics/battle/type_icons/physical.png differ diff --git a/res/graphics/battle/type_icons/poison.png b/res/graphics/battle/type_icons/poison.png new file mode 100644 index 0000000000..40664114a6 Binary files /dev/null and b/res/graphics/battle/type_icons/poison.png differ diff --git a/res/graphics/battle/type_icons/psychic.png b/res/graphics/battle/type_icons/psychic.png new file mode 100644 index 0000000000..3b85fb5c0f Binary files /dev/null and b/res/graphics/battle/type_icons/psychic.png differ diff --git a/res/graphics/battle/type_icons/rock.png b/res/graphics/battle/type_icons/rock.png new file mode 100644 index 0000000000..73c2d2180d Binary files /dev/null and b/res/graphics/battle/type_icons/rock.png differ diff --git a/res/graphics/battle/type_icons/shared.pal b/res/graphics/battle/type_icons/shared.pal new file mode 100644 index 0000000000..dbf9700302 --- /dev/null +++ b/res/graphics/battle/type_icons/shared.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 213 49 +246 82 49 +148 49 41 +230 197 106 +189 164 57 +139 106 49 +255 255 123 +172 172 123 +222 222 197 +115 90 74 +74 65 57 +189 189 213 +0 0 0 +131 123 115 +255 255 255 +0 0 0 +205 197 255 +172 148 246 +115 90 156 +106 148 246 +156 222 222 +213 255 238 +74 57 82 +255 90 139 +255 197 180 +148 98 98 +164 65 164 +222 131 189 +148 148 164 +131 123 115 +255 255 255 +0 0 0 +197 255 98 +123 205 82 +90 131 65 +115 57 255 +74 57 148 +189 164 255 +172 189 32 +222 230 49 +123 148 16 +106 164 148 +115 205 180 +32 106 98 +0 0 0 +131 123 115 +255 255 255 diff --git a/res/graphics/battle/type_icons/smart.png b/res/graphics/battle/type_icons/smart.png new file mode 100644 index 0000000000..ecf631ff40 Binary files /dev/null and b/res/graphics/battle/type_icons/smart.png differ diff --git a/res/graphics/battle/type_icons/special.png b/res/graphics/battle/type_icons/special.png new file mode 100644 index 0000000000..f89f0a0e68 Binary files /dev/null and b/res/graphics/battle/type_icons/special.png differ diff --git a/res/graphics/battle/type_icons/status.png b/res/graphics/battle/type_icons/status.png new file mode 100644 index 0000000000..7b228f54de Binary files /dev/null and b/res/graphics/battle/type_icons/status.png differ diff --git a/res/graphics/battle/type_icons/steel.png b/res/graphics/battle/type_icons/steel.png new file mode 100644 index 0000000000..1cde2e3594 Binary files /dev/null and b/res/graphics/battle/type_icons/steel.png differ diff --git a/res/graphics/battle/type_icons/tough.png b/res/graphics/battle/type_icons/tough.png new file mode 100644 index 0000000000..80fcdf32a0 Binary files /dev/null and b/res/graphics/battle/type_icons/tough.png differ diff --git a/res/graphics/battle/type_icons/water.png b/res/graphics/battle/type_icons/water.png new file mode 100644 index 0000000000..279b8f97a0 Binary files /dev/null and b/res/graphics/battle/type_icons/water.png differ diff --git a/res/prebuilt/battle/graphic/meson.build b/res/prebuilt/battle/graphic/meson.build index f44c61a99e..7100a79bec 100644 --- a/res/prebuilt/battle/graphic/meson.build +++ b/res/prebuilt/battle/graphic/meson.build @@ -5,7 +5,6 @@ prebuilt_files = [ 'batt_obj.narc', 'pl_b_plist_gra.narc', 'pl_batt_bg.narc', - 'pl_batt_obj.narc', 'vs_demo_gra.narc' ] diff --git a/res/prebuilt/battle/graphic/pl_batt_obj.narc b/res/prebuilt/battle/graphic/pl_batt_obj.narc deleted file mode 100644 index 967ebba944..0000000000 Binary files a/res/prebuilt/battle/graphic/pl_batt_obj.narc and /dev/null differ diff --git a/src/battle/healthbar.c b/src/battle/healthbar.c index 72192d9ea5..65e658ab05 100644 --- a/src/battle/healthbar.c +++ b/src/battle/healthbar.c @@ -10,6 +10,7 @@ #include "generated/string_padding_mode.h" #include "battle/battle_system.h" +#include "graphics/battle/sprites.naix" #include "assert.h" #include "bg_window.h" @@ -186,7 +187,7 @@ void ov16_02268498(Healthbar *healthbar); static void ov16_022684BC(SysTask *task, void *data); static void Healthbar_EnableArrow(Healthbar *healthbar, BOOL enable); -__attribute__((aligned(4))) static const s8 sArrowOffsetX[] = { +ALIGN_4 static const s8 sArrowOffsetX[] = { [HEALTHBAR_TYPE_PLAYER_SOLO] = 72, [HEALTHBAR_TYPE_ENEMY_SOLO] = 0, [HEALTHBAR_TYPE_PLAYER_SLOT_1] = 72, @@ -410,41 +411,10 @@ static const VRAMTransfer Unk_ov16_0226F3D4[] = { { 0x0, 0x0 }, }; -#define HEALTHBAR_MAIN_PALETTE_NCLR 71 -#define HEALTHBAR_SAFARI_PALETTE_NCLR 81 - #define HEALTHBAR_MAIN_PALETTE_RESID 20006 #define HEALTHBAR_EFFECTS_PALETTE_RESID 20007 #define HEALTHBAR_SAFARI_PALETTE_RESID 20008 -enum HealthbarGfxResourceID { - HEALTHBAR_UNK_B7_NANR = 183, - HEALTHBAR_UNK_B8_NCER, - HEALTHBAR_UNK_B9_NCER, - HEALTHBAR_SOLO_ENEMY_NANR, - HEALTHBAR_SOLO_ENEMY_NCER, - HEALTHBAR_SOLO_ENEMY_NCGR, - HEALTHBAR_SOLO_PLAYER_NANR, - HEALTHBAR_SOLO_PLAYER_NCER, - HEALTHBAR_SOLO_PLAYER_NCGR, - HEALTHBAR_ENEMY_SLOT_1_NANR, - HEALTHBAR_ENEMY_SLOT_1_NCER, - HEALTHBAR_ENEMY_SLOT_1_NCGR, - HEALTHBAR_ENEMY_SLOT_2_NANR, - HEALTHBAR_ENEMY_SLOT_2_NCER, - HEALTHBAR_ENEMY_SLOT_2_NCGR, - HEALTHBAR_PLAYER_SLOT_1_NANR, - HEALTHBAR_PLAYER_SLOT_1_NCER, - HEALTHBAR_PLAYER_SLOT_1_NCGR, - HEALTHBAR_PLAYER_SLOT_2_NANR, - HEALTHBAR_PLAYER_SLOT_2_NCER, - HEALTHBAR_PLAYER_SLOT_2_NCGR, - - HEALTHBAR_SAFARI_NCGR = 253, - HEALTHBAR_SAFARI_NCER, - HEALTHBAR_SAFARI_NANR, -}; - static const SpriteTemplate sHealthbarTemplate_SoloPlayer = { .x = HEALTHBAR_X_OFFSET_SOLO_PLAYER, .y = HEALTHBAR_Y_OFFSET_SOLO_PLAYER, @@ -454,10 +424,10 @@ static const SpriteTemplate sHealthbarTemplate_SoloPlayer = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_SOLO_PLAYER_NCGR, + healthbox_player_singles_NCGR_lz, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_SOLO_PLAYER_NCER, - HEALTHBAR_SOLO_PLAYER_NANR, + healthbox_tall_cell_NCER_lz, + misc_single_frame_anim_NANR_lz_6, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -474,10 +444,10 @@ static const SpriteTemplate sHealthbarTemplate_SoloEnemy = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_SOLO_ENEMY_NCGR, + healthbox_enemy_NCGR_lz, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_SOLO_ENEMY_NCER, - HEALTHBAR_SOLO_ENEMY_NANR, + healthbox_short_cell_NCER_lz, + misc_single_frame_anim_NANR_lz_5, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -494,10 +464,10 @@ static const SpriteTemplate sHealthbarTemplate_PlayerSlot1 = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_PLAYER_SLOT_1_NCGR, + healthbox_player_doubles_NCGR_lz, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_PLAYER_SLOT_1_NCER, - HEALTHBAR_PLAYER_SLOT_1_NANR, + healthbox_short_cell_NCER_lz_3, + misc_single_frame_anim_NANR_lz_9, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -514,10 +484,10 @@ static const SpriteTemplate sHealthbarTemplate_EnemySlot1 = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_ENEMY_SLOT_1_NCGR, + healthbox_enemy_NCGR_lz_1, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_ENEMY_SLOT_1_NCER, - HEALTHBAR_ENEMY_SLOT_1_NANR, + healthbox_short_cell_NCER_lz_1, + misc_single_frame_anim_NANR_lz_7, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -534,10 +504,10 @@ static const SpriteTemplate sHealthbarTemplate_PlayerSlot2 = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_PLAYER_SLOT_2_NCGR, + healthbox_player_doubles_NCGR_lz_1, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_PLAYER_SLOT_2_NCER, - HEALTHBAR_PLAYER_SLOT_2_NANR, + healthbox_short_cell_NCER_lz_4, + misc_single_frame_anim_NANR_lz_10, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -554,10 +524,10 @@ static const SpriteTemplate sHealthbarTemplate_EnemySlot2 = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_ENEMY_SLOT_2_NCGR, + healthbox_enemy_NCGR_lz_2, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_ENEMY_SLOT_2_NCER, - HEALTHBAR_ENEMY_SLOT_2_NANR, + healthbox_short_cell_NCER_lz_2, + misc_single_frame_anim_NANR_lz_8, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -574,10 +544,10 @@ static const SpriteTemplate sHealthbarTemplate_Unk_ov16_0226F514 = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_UNK_B9_NCER, + healthbox_arrows_wide_NCGR_lz, HEALTHBAR_MAIN_PALETTE_RESID, - HEALTHBAR_UNK_B8_NCER, - HEALTHBAR_UNK_B7_NANR, + healthbox_arrows_wide_cell_NCER_lz, + healthbox_arrows_wide_anim_NANR_lz, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -594,10 +564,10 @@ static const SpriteTemplate sHealthbarTemplate_NoPlayerMon = { .plttIdx = 0, .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, .resources = { - HEALTHBAR_SAFARI_NCGR, + healthbox_safari_NCGR_lz, HEALTHBAR_SAFARI_PALETTE_RESID, - HEALTHBAR_SAFARI_NCER, - HEALTHBAR_SAFARI_NANR, + healthbox_safari_cell_NCER_lz, + misc_single_frame_anim_NANR_lz_15, SPRITE_RESOURCE_NONE, SPRITE_RESOURCE_NONE, }, @@ -605,20 +575,20 @@ static const SpriteTemplate sHealthbarTemplate_NoPlayerMon = { .vramTransfer = FALSE, }; -#include "res/graphics/battle/healthbar_parts.4bpp.h" +#include "res/graphics/battle/healthbox/healthbar_parts.4bpp.h" void Healthbar_LoadResources(SpriteSystem *spriteSys, SpriteManager *spriteMan, NARC *narc, PaletteData *palette, enum HealthbarType healthbarType) { const SpriteTemplate *template = Healthbar_SpriteTemplate(healthbarType); SpriteSystem_LoadCharResObjFromOpenNarc(spriteSys, spriteMan, narc, template->resources[SPRITE_RESOURCE_CHAR], TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, template->resources[SPRITE_RESOURCE_CHAR]); - SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, 71, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_MAIN_PALETTE_RESID); + SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, healthbox_primary_NCLR, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_MAIN_PALETTE_RESID); SpriteSystem_LoadCellResObjFromOpenNarc(spriteSys, spriteMan, narc, template->resources[SPRITE_RESOURCE_CELL], TRUE, template->resources[SPRITE_RESOURCE_CELL]); SpriteSystem_LoadAnimResObjFromOpenNarc(spriteSys, spriteMan, narc, template->resources[SPRITE_RESOURCE_ANIM], TRUE, template->resources[SPRITE_RESOURCE_ANIM]); - SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, 71, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_EFFECTS_PALETTE_RESID); + SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, healthbox_primary_NCLR, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_EFFECTS_PALETTE_RESID); if (healthbarType == HEALTHBAR_TYPE_SAFARI_ZONE || healthbarType == HEALTHBAR_TYPE_PAL_PARK) { - SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, 81, 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_SAFARI_PALETTE_RESID); + SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, healthbox_safari_NCLR, 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_SAFARI_PALETTE_RESID); } } @@ -628,7 +598,7 @@ static void Healthbar_LoadMainPalette(SpriteSystem *spriteSys, SpriteManager *ha if (template != NULL) { SpriteSystem_LoadCharResObjFromOpenNarc(spriteSys, handler, narc, template->resources[SPRITE_RESOURCE_CHAR], TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, template->resources[SPRITE_RESOURCE_CHAR]); - SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, handler, narc, 71, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_MAIN_PALETTE_RESID); + SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, handler, narc, healthbox_primary_NCLR, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBAR_MAIN_PALETTE_RESID); SpriteSystem_LoadCellResObjFromOpenNarc(spriteSys, handler, narc, template->resources[SPRITE_RESOURCE_CELL], TRUE, template->resources[SPRITE_RESOURCE_CELL]); SpriteSystem_LoadAnimResObjFromOpenNarc(spriteSys, handler, narc, template->resources[SPRITE_RESOURCE_ANIM], TRUE, template->resources[SPRITE_RESOURCE_ANIM]); } diff --git a/src/battle/ov16_02268520.c b/src/battle/ov16_02268520.c index 7780c2e586..9275ded446 100644 --- a/src/battle/ov16_02268520.c +++ b/src/battle/ov16_02268520.c @@ -1,7 +1,6 @@ #include "battle/ov16_02268520.h" -#include -#include +#include "generated/battle_terrains.h" #include "struct_decls/battle_system.h" @@ -12,161 +11,131 @@ #include "palette.h" #include "sprite_system.h" -static const SpriteTemplate Unk_ov16_022700CC[] = { +#include "res/graphics/battle/sprites.naix" + +static const SpriteTemplate sTerrainSpriteTemplates[] = { { - 0x150, - 0x88, - 0x0, - 0x0, - 0x3E8, - 0x0, - NNS_G2D_VRAM_TYPE_2DMAIN, - { 0x4E2D, 0x4E29, 0x4E25, 0x4E25, 0xFFFFFFFF, 0xFFFFFFFF }, - 0x3, - 0x0, + .x = 336, + .y = 136, + .z = 0, + .animIdx = 0, + .priority = 1000, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + .resources = { + 0x4E2D, + 0x4E29, + 0x4E25, + 0x4E25, + 0xFFFFFFFF, + 0xFFFFFFFF, + }, + .bgPriority = 3, + .vramTransfer = FALSE, }, { - 0xFFFFFFFFFFFFFFB0, - 0x58, - 0x0, - 0x0, - 0x3E8, - 0x0, - NNS_G2D_VRAM_TYPE_2DMAIN, - { 0x4E2E, 0x4E29, 0x4E26, 0x4E26, 0xFFFFFFFF, 0xFFFFFFFF }, - 0x3, - 0x0, + .x = -80, + .y = 88, + .z = 0, + .animIdx = 0, + .priority = 1000, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + .resources = { + 0x4E2E, + 0x4E29, + 0x4E26, + 0x4E26, + 0xFFFFFFFF, + 0xFFFFFFFF, + }, + .bgPriority = 3, + .vramTransfer = FALSE, }, }; -__attribute__((aligned(4))) static const u16 Unk_ov16_0227009C[] = { - 0x87, - 0x91, - 0x7F, - 0x97, - 0x8B, - 0x95, - 0x8D, - 0x85, - 0x89, - 0x8F, - 0x93, - 0x97, - 0x99, - 0x9B, - 0x9D, - 0x9F, - 0xA1, - 0xA3, - 0xA5, - 0xA7, - 0xA9, - 0xAB, - 0xAD, - 0xAF +// clang-format off +ALIGN_4 static const u16 sTerrainSpriteSource_PlayerSide[TERRAIN_MAX] = { + [TERRAIN_PLAIN] = terrain_path_player_NCGR_lz, + [TERRAIN_SAND] = terrain_sand_player_NCGR_lz, + [TERRAIN_GRASS] = terrain_grass_player_NCGR_lz, + [TERRAIN_PUDDLE] = terrain_path_puddles_player_NCGR_lz, + [TERRAIN_MOUNTAIN] = terrain_rocky_player_NCGR_lz, + [TERRAIN_CAVE] = terrain_cave_player_NCGR_lz, + [TERRAIN_SNOW] = terrain_snow_player_NCGR_lz, + [TERRAIN_WATER] = terrain_water_player_NCGR_lz, + [TERRAIN_ICE] = terrain_ice_player_NCGR_lz, + [TERRAIN_BUILDING] = terrain_indoors_player_NCGR_lz, + [TERRAIN_GREAT_MARSH] = terrain_mud_player_NCGR_lz, + [TERRAIN_BRIDGE] = terrain_path_puddles_player_NCGR_lz, + [TERRAIN_AARON] = terrain_league_aaron_player_NCGR_lz, + [TERRAIN_BERTHA] = terrain_league_bertha_player_NCGR_lz, + [TERRAIN_FLINT] = terrain_league_flint_player_NCGR_lz, + [TERRAIN_LUCIAN] = terrain_league_lucian_player_NCGR_lz, + [TERRAIN_CYNTHIA] = terrain_league_cynthia_player_NCGR_lz, + [TERRAIN_DISTORTION_WORLD] = terrain_distortion_world_player_NCGR_lz, + [TERRAIN_BATTLE_TOWER] = terrain_battle_tower_player_NCGR_lz, + [TERRAIN_BATTLE_FACTORY] = terrain_battle_factory_player_NCGR_lz, + [TERRAIN_BATTLE_ARCADE] = terrain_battle_arcade_player_NCGR_lz, + [TERRAIN_BATTLE_CASTLE] = terrain_battle_castle_player_NCGR_lz, + [TERRAIN_BATTLE_HALL] = terrain_battle_hall_player_NCGR_lz, + [TERRAIN_GIRATINA] = terrain_giratina_player_NCGR_lz, }; -__attribute__((aligned(4))) static const u16 Unk_ov16_0227006C[] = { - 0x88, - 0x92, - 0x82, - 0x98, - 0x8C, - 0x96, - 0x8E, - 0x86, - 0x8A, - 0x90, - 0x94, - 0x94, - 0x9A, - 0x9C, - 0x9E, - 0xA0, - 0xA2, - 0xA4, - 0xA6, - 0xA8, - 0xAA, - 0xAC, - 0xAE, - 0xB0 +ALIGN_4 static const u16 sTerrainSpriteSource_EnemySide[TERRAIN_MAX] = { + [TERRAIN_PLAIN] = terrain_path_enemy_NCGR_lz, + [TERRAIN_SAND] = terrain_sand_enemy_NCGR_lz, + [TERRAIN_GRASS] = terrain_grass_enemy_NCGR_lz, + [TERRAIN_PUDDLE] = terrain_path_puddles_enemy_NCGR_lz, + [TERRAIN_MOUNTAIN] = terrain_rocky_enemy_NCGR_lz, + [TERRAIN_CAVE] = terrain_cave_enemy_NCGR_lz, + [TERRAIN_SNOW] = terrain_snow_enemy_NCGR_lz, + [TERRAIN_WATER] = terrain_water_enemy_NCGR_lz, + [TERRAIN_ICE] = terrain_ice_enemy_NCGR_lz, + [TERRAIN_BUILDING] = terrain_indoors_enemy_NCGR_lz, + [TERRAIN_GREAT_MARSH] = terrain_mud_enemy_NCGR_lz, + [TERRAIN_BRIDGE] = terrain_mud_enemy_NCGR_lz, + [TERRAIN_AARON] = terrain_league_aaron_enemy_NCGR_lz, + [TERRAIN_BERTHA] = terrain_league_bertha_enemy_NCGR_lz, + [TERRAIN_FLINT] = terrain_league_flint_enemy_NCGR_lz, + [TERRAIN_LUCIAN] = terrain_league_lucian_enemy_NCGR_lz, + [TERRAIN_CYNTHIA] = terrain_league_cynthia_enemy_NCGR_lz, + [TERRAIN_DISTORTION_WORLD] = terrain_distortion_world_enemy_NCGR_lz, + [TERRAIN_BATTLE_TOWER] = terrain_battle_tower_enemy_NCGR_lz, + [TERRAIN_BATTLE_FACTORY] = terrain_battle_factory_enemy_NCGR_lz, + [TERRAIN_BATTLE_ARCADE] = terrain_battle_arcade_enemy_NCGR_lz, + [TERRAIN_BATTLE_CASTLE] = terrain_battle_castle_enemy_NCGR_lz, + [TERRAIN_BATTLE_HALL] = terrain_battle_hall_enemy_NCGR_lz, + [TERRAIN_GIRATINA] = terrain_giratina_enemy_NCGR_lz, }; -__attribute__((aligned(4))) static const u16 Unk_ov16_02270134[][3] = { - 0x7, - 0x8, - 0x9, - 0x16, - 0x17, - 0x18, - 0x1, - 0x2, - 0x3, - 0x1F, - 0x20, - 0x21, - 0xD, - 0xE, - 0xF, - 0x1C, - 0x1D, - 0x1E, - 0x10, - 0x11, - 0x12, - 0x4, - 0x5, - 0x6, - 0xA, - 0xB, - 0xC, - 0x13, - 0x14, - 0x15, - 0x19, - 0x1A, - 0x1B, - 0x19, - 0x1A, - 0x1B, - 0x22, - 0x23, - 0x24, - 0x25, - 0x26, - 0x27, - 0x28, - 0x29, - 0x2A, - 0x2B, - 0x2C, - 0x2D, - 0x2E, - 0x2F, - 0x30, - 0x31, - 0x32, - 0x33, - 0x34, - 0x35, - 0x36, - 0x37, - 0x38, - 0x39, - 0x3A, - 0x3B, - 0x3C, - 0x3D, - 0x3E, - 0x3F, - 0x40, - 0x41, - 0x42, - 0x43, - 0x44, - 0x45 +ALIGN_4 static const u16 sTerrainPaletteSource[TERRAIN_MAX][3] = { + [TERRAIN_PLAIN] = { terrain_path_day_NCLR, terrain_path_evening_NCLR, terrain_path_night_NCLR }, + [TERRAIN_SAND] = { terrain_sand_day_NCLR, terrain_sand_evening_NCLR, terrain_sand_night_NCLR }, + [TERRAIN_GRASS] = { terrain_grass_day_NCLR, terrain_grass_evening_NCLR, terrain_grass_night_NCLR }, + [TERRAIN_PUDDLE] = { terrain_path_puddles_day_NCLR, terrain_path_puddles_evening_NCLR, terrain_path_puddles_night_NCLR }, + [TERRAIN_MOUNTAIN] = { terrain_rocky_day_NCLR, terrain_rocky_evening_NCLR, terrain_rocky_night_NCLR }, + [TERRAIN_CAVE] = { terrain_cave_all_NCLR, terrain_cave_all_NCLR_1, terrain_cave_all_NCLR_2 }, + [TERRAIN_SNOW] = { terrain_snow_day_NCLR, terrain_snow_evening_NCLR, terrain_snow_night_NCLR }, + [TERRAIN_WATER] = { terrain_water_day_NCLR, terrain_water_evening_NCLR, terrain_water_night_NCLR }, + [TERRAIN_ICE] = { terrain_ice_day_NCLR, terrain_ice_evening_NCLR, terrain_ice_night_NCLR }, + [TERRAIN_BUILDING] = { terrain_indoors_all_NCLR, terrain_indoors_all_NCLR_1, terrain_indoors_all_NCLR_2 }, + [TERRAIN_GREAT_MARSH] = { terrain_mud_day_NCLR, terrain_mud_evening_NCLR, terrain_mud_night_NCLR }, + [TERRAIN_BRIDGE] = { terrain_mud_day_NCLR, terrain_mud_evening_NCLR, terrain_mud_night_NCLR }, + [TERRAIN_AARON] = { terrain_league_aaron_all_NCLR, terrain_league_aaron_all_NCLR_1, terrain_league_aaron_all_NCLR_2 }, + [TERRAIN_BERTHA] = { terrain_league_bertha_all_NCLR, terrain_league_bertha_all_NCLR_1, terrain_league_bertha_all_NCLR_2 }, + [TERRAIN_FLINT] = { terrain_league_flint_all_NCLR, terrain_league_flint_all_NCLR_1, terrain_league_flint_all_NCLR_2 }, + [TERRAIN_LUCIAN] = { terrain_league_lucian_all_NCLR, terrain_league_lucian_all_NCLR_1, terrain_league_lucian_all_NCLR_2 }, + [TERRAIN_CYNTHIA] = { terrain_league_cynthia_all_NCLR, terrain_league_cynthia_all_NCLR_1, terrain_league_cynthia_all_NCLR_2 }, + [TERRAIN_DISTORTION_WORLD] = { terrain_distortion_world_all_NCLR, terrain_distortion_world_all_NCLR_1, terrain_distortion_world_all_NCLR_2 }, + [TERRAIN_BATTLE_TOWER] = { terrain_battle_tower_all_NCLR, terrain_battle_tower_all_NCLR_1, terrain_battle_tower_all_NCLR_2 }, + [TERRAIN_BATTLE_FACTORY] = { terrain_battle_factory_all_NCLR, terrain_battle_factory_all_NCLR_1, terrain_battle_factory_all_NCLR_2 }, + [TERRAIN_BATTLE_ARCADE] = { terrain_battle_arcade_all_NCLR, terrain_battle_arcade_all_NCLR_1, terrain_battle_arcade_all_NCLR_2 }, + [TERRAIN_BATTLE_CASTLE] = { terrain_battle_castle_all_NCLR, terrain_battle_castle_all_NCLR_1, terrain_battle_castle_all_NCLR_2 }, + [TERRAIN_BATTLE_HALL] = { terrain_battle_hall_all_NCLR, terrain_battle_hall_all_NCLR_1, terrain_battle_hall_all_NCLR_2 }, + [TERRAIN_GIRATINA] = { terrain_giratina_all_NCLR, terrain_giratina_all_NCLR_1, terrain_giratina_all_NCLR_2 }, }; +// clang-format on void ov16_02268520(UnkStruct_ov16_02268520 *param0) { @@ -179,27 +148,27 @@ void ov16_02268520(UnkStruct_ov16_02268520 *param0) v0 = BattleSystem_GetSpriteSystem(param0->unk_04); v1 = BattleSystem_GetSpriteManager(param0->unk_04); v9 = BattleSystem_GetBackgroundTimeOffset(param0->unk_04); - v2 = &Unk_ov16_022700CC[param0->unk_08]; + v2 = &sTerrainSpriteTemplates[param0->unk_08]; if (param0->unk_08 == 0) { - v3 = Unk_ov16_0227009C[param0->unk_09]; + v3 = sTerrainSpriteSource_PlayerSide[param0->unk_09]; v4 = 20013; - v5 = 128; + v5 = terrain_player_cell_NCER_lz; v6 = 20005; - v7 = 129; + v7 = terrain_player_anim_NANR_lz; v8 = 20005; } else { - v3 = Unk_ov16_0227006C[param0->unk_09]; + v3 = sTerrainSpriteSource_EnemySide[param0->unk_09]; v4 = 20014; - v5 = 131; + v5 = terrain_enemy_cell_NCER_lz; v6 = 20006; - v7 = 132; + v7 = terrain_enemy_anim_NANR_lz; v8 = 20006; } SpriteSystem_LoadCharResObjFromOpenNarc(v0, v1, v10, v3, TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, v4); - SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_GetPaletteData(param0->unk_04), PLTTBUF_MAIN_OBJ, v0, v1, v10, Unk_ov16_02270134[param0->unk_09][v9], FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 20009); - PaletteData_LoadBufferFromFileStart(BattleSystem_GetPaletteData(param0->unk_04), NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, Unk_ov16_02270134[param0->unk_09][v9], 5, PLTTBUF_MAIN_BG, 0x20, 0x7 * 0x10); + SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_GetPaletteData(param0->unk_04), PLTTBUF_MAIN_OBJ, v0, v1, v10, sTerrainPaletteSource[param0->unk_09][v9], FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 20009); + PaletteData_LoadBufferFromFileStart(BattleSystem_GetPaletteData(param0->unk_04), NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, sTerrainPaletteSource[param0->unk_09][v9], 5, PLTTBUF_MAIN_BG, 0x20, 0x7 * 0x10); SpriteSystem_LoadCellResObjFromOpenNarc(v0, v1, v10, v5, TRUE, v6); SpriteSystem_LoadAnimResObjFromOpenNarc(v0, v1, v10, v7, TRUE, v8); NARC_dtor(v10); @@ -213,7 +182,7 @@ void ov16_0226862C(UnkStruct_ov16_02268520 *param0) v0 = BattleSystem_GetSpriteSystem(param0->unk_04); v1 = BattleSystem_GetSpriteManager(param0->unk_04); - v2 = &Unk_ov16_022700CC[param0->unk_08]; + v2 = &sTerrainSpriteTemplates[param0->unk_08]; param0->unk_00 = SpriteSystem_NewSprite(v0, v1, v2); Sprite_TickFrame(param0->unk_00->sprite); @@ -269,8 +238,8 @@ void ov16_022686CC(UnkStruct_ov16_02268520 *param0, BattleSystem *battleSys, u16 param0->unk_08 = param2; param0->unk_09 = param3; - if (param3 >= 24) { - GF_ASSERT(0); + if (param3 >= TERRAIN_MAX) { + GF_ASSERT(FALSE); param0->unk_09 = 0; } diff --git a/src/battle_anim/ov12_02235E94.c b/src/battle_anim/ov12_02235E94.c index c0d0581a2b..dbb3a68a31 100644 --- a/src/battle_anim/ov12_02235E94.c +++ b/src/battle_anim/ov12_02235E94.c @@ -31,6 +31,8 @@ #include "unk_0202C9F4.h" #include "unk_02097B18.h" +#include "res/graphics/battle/sprites.naix" + typedef struct { int unk_00; int unk_04; @@ -119,28 +121,30 @@ static BOOL ov12_02236F10(BallRotation *param0); static BOOL ov12_02237694(BallRotation *param0); static BOOL ov12_02237474(BallRotation *param0); -static const int Unk_ov12_0223AF00[][4] = { - { 0x120, 0x5C, 0x11F, 0x11E }, - { 0x123, 0x5D, 0x122, 0x121 }, - { 0x126, 0x5E, 0x125, 0x124 }, - { 0x11D, 0x5B, 0x11C, 0x11B }, - { 0x129, 0x5F, 0x128, 0x127 }, - { 0x12C, 0x60, 0x12B, 0x12A }, - { 0x12F, 0x61, 0x12E, 0x12D }, - { 0x132, 0x62, 0x131, 0x130 }, - { 0x135, 0x63, 0x134, 0x133 }, - { 0x138, 0x64, 0x137, 0x136 }, - { 0x13B, 0x65, 0x13A, 0x139 }, - { 0x13E, 0x66, 0x13D, 0x13C }, - { 0x144, 0x68, 0x143, 0x142 }, - { 0x147, 0x69, 0x146, 0x145 }, - { 0x141, 0x67, 0x140, 0x13F }, - { 0x14A, 0x6A, 0x149, 0x148 }, - { 0x14D, 0x6B, 0x14C, 0x14B }, - { 0x153, 0x6D, 0x152, 0x151 }, - { 0x150, 0x6C, 0x14F, 0x14E }, - { 0x150, 0x6C, 0x14F, 0x14E } +// clang-format off +static const int sBallThrowGraphics[][4] = { + { ball_throws_master_ball_NCGR_lz, ball_throws_master_ball_NCLR, ball_throws_shared_cell_NCER_lz_2, ball_throws_shared_anim_NANR_lz_1 }, + { ball_throws_ultra_ball_NCGR_lz, ball_throws_ultra_ball_NCLR, ball_throws_shared_cell_NCER_lz_3, ball_throws_shared_anim_NANR_lz_2 }, + { ball_throws_great_ball_NCGR_lz, ball_throws_great_ball_NCLR, ball_throws_shared_cell_NCER_lz_4, ball_throws_shared_anim_NANR_lz_3 }, + { ball_throws_poke_ball_NCGR_lz, ball_throws_poke_ball_NCLR, ball_throws_shared_cell_NCER_lz_1, ball_throws_shared_anim_NANR_lz }, + { ball_throws_safari_ball_NCGR_lz, ball_throws_safari_ball_NCLR, ball_throws_shared_cell_NCER_lz_5, ball_throws_shared_anim_NANR_lz_4 }, + { ball_throws_net_ball_NCGR_lz, ball_throws_net_ball_NCLR, ball_throws_shared_cell_NCER_lz_6, ball_throws_shared_anim_NANR_lz_5 }, + { ball_throws_dive_ball_NCGR_lz, ball_throws_dive_ball_NCLR, ball_throws_shared_cell_NCER_lz_7, ball_throws_shared_anim_NANR_lz_6 }, + { ball_throws_nest_ball_NCGR_lz, ball_throws_nest_ball_NCLR, ball_throws_shared_cell_NCER_lz_8, ball_throws_shared_anim_NANR_lz_7 }, + { ball_throws_repeat_ball_NCGR_lz, ball_throws_repeat_ball_NCLR, ball_throws_shared_cell_NCER_lz_9, ball_throws_shared_anim_NANR_lz_8 }, + { ball_throws_timer_ball_NCGR_lz, ball_throws_timer_ball_NCLR, ball_throws_shared_cell_NCER_lz_10, ball_throws_shared_anim_NANR_lz_9 }, + { ball_throws_luxury_ball_NCGR_lz, ball_throws_luxury_ball_NCLR, ball_throws_shared_cell_NCER_lz_11, ball_throws_shared_anim_NANR_lz_10 }, + { ball_throws_premier_ball_NCGR_lz, ball_throws_premier_ball_NCLR, ball_throws_shared_cell_NCER_lz_12, ball_throws_shared_anim_NANR_lz_11 }, + { ball_throws_dusk_ball_NCGR_lz, ball_throws_dusk_ball_NCLR, ball_throws_shared_cell_NCER_lz_14, ball_throws_quick_dusk_heal_anim_NANR_lz_1 }, + { ball_throws_heal_ball_NCGR_lz, ball_throws_heal_ball_NCLR, ball_throws_shared_cell_NCER_lz_15, ball_throws_quick_dusk_heal_anim_NANR_lz_2 }, + { ball_throws_quick_ball_NCGR_lz, ball_throws_quick_ball_NCLR, ball_throws_shared_cell_NCER_lz_13, ball_throws_quick_dusk_heal_anim_NANR_lz }, + { ball_throws_cherish_ball_NCGR_lz, ball_throws_cherish_ball_NCLR, ball_throws_shared_cell_NCER_lz_16, ball_throws_shared_anim_NANR_lz_12 }, + { ball_throws_park_ball_NCGR_lz, ball_throws_park_ball_NCLR, ball_throws_shared_cell_NCER_lz_17, ball_throws_shared_anim_NANR_lz_13 }, + { ball_throws_mud_NCGR_lz, ball_throws_mud_NCLR, ball_throws_mud_cell_NCER_lz, ball_throws_mud_anim_NANR_lz }, + { ball_throws_bait_NCGR_lz, ball_throws_bait_NCLR, ball_throws_shared_cell_NCER_lz_18, ball_throws_bait_anim_NANR_lz }, + { ball_throws_bait_NCGR_lz, ball_throws_bait_NCLR, ball_throws_shared_cell_NCER_lz_18, ball_throws_bait_anim_NANR_lz }, }; +// clang-format on static const int Unk_ov12_0223AD70[][2] = { { 0x1, 0x5 }, @@ -319,7 +323,7 @@ static int ov12_02235FB4(int param0) static int ov12_02235FC8(int param0, int param1) { int v0 = ov12_02235E94(param0); - return Unk_ov12_0223AF00[v0][param1]; + return sBallThrowGraphics[v0][param1]; } UnkStruct_ov12_02235FE0 *ov12_02235FE0(enum HeapID heapID) diff --git a/src/type_icon.c b/src/type_icon.c index 5d98d40993..3e44668303 100644 --- a/src/type_icon.c +++ b/src/type_icon.c @@ -1,79 +1,82 @@ #include "type_icon.h" -#include -#include - #include "constants/narc.h" #include "generated/move_classes.h" - -#include "pch/global_pch.h" +#include "generated/pokemon_contest_types.h" +#include "generated/pokemon_types.h" #include "palette.h" #include "sprite_system.h" +#include "res/graphics/battle/sprites.naix" + +// clang-format off ALIGN_4 static const u32 sMoveTypeIconIndex[] = { - 0xEA, // 0 to 17 are pokemon types - 0xE1, - 0xE3, - 0xEB, - 0xE5, - 0xED, - 0xE7, - 0xE4, - 0xEE, - 0xEC, - 0xE2, - 0xF1, - 0xE9, - 0xDE, - 0xDF, - 0xE6, - 0xDD, - 0xE0, - 0xF0, // 18 to 22 are contest types - 0xDB, - 0xDC, - 0xE8, - 0xEF + [TYPE_NORMAL] = type_icons_normal_NCGR_lz, + [TYPE_FIGHTING] = type_icons_fighting_NCGR_lz, + [TYPE_FLYING] = type_icons_flying_NCGR_lz, + [TYPE_POISON] = type_icons_poison_NCGR_lz, + [TYPE_GROUND] = type_icons_ground_NCGR_lz, + [TYPE_ROCK] = type_icons_rock_NCGR_lz, + [TYPE_BUG] = type_icons_bug_NCGR_lz, + [TYPE_GHOST] = type_icons_ghost_NCGR_lz, + [TYPE_STEEL] = type_icons_steel_NCGR_lz, + [TYPE_MYSTERY] = type_icons_mystery_NCGR_lz, + [TYPE_FIRE] = type_icons_fire_NCGR_lz, + [TYPE_WATER] = type_icons_water_NCGR_lz, + [TYPE_GRASS] = type_icons_grass_NCGR_lz, + [TYPE_ELECTRIC] = type_icons_electric_NCGR_lz, + [TYPE_PSYCHIC] = type_icons_psychic_NCGR_lz, + [TYPE_ICE] = type_icons_ice_NCGR_lz, + [TYPE_DRAGON] = type_icons_dragon_NCGR_lz, + [TYPE_DARK] = type_icons_dark_NCGR_lz, + + [NUM_POKEMON_TYPES + CONTEST_TYPE_COOL] = type_icons_cool_NCGR_lz, + [NUM_POKEMON_TYPES + CONTEST_TYPE_BEAUTY] = type_icons_beauty_NCGR_lz, + [NUM_POKEMON_TYPES + CONTEST_TYPE_CUTE] = type_icons_cute_NCGR_lz, + [NUM_POKEMON_TYPES + CONTEST_TYPE_SMART] = type_icons_smart_NCGR_lz, + [NUM_POKEMON_TYPES + CONTEST_TYPE_TOUGH] = type_icons_tough_NCGR_lz, }; ALIGN_4 static const u8 sMoveTypeIconPaletteIndex[] = { - 0x0, // 0 to 17 are pokemon types - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x2, - 0x1, - 0x0, - 0x2, - 0x0, - 0x1, - 0x2, - 0x0, - 0x1, - 0x1, - 0x2, - 0x0, - 0x0, // 18 to 22 are contest types - 0x1, - 0x1, - 0x2, - 0x0 + [TYPE_NORMAL] = 0, + [TYPE_FIGHTING] = 0, + [TYPE_FLYING] = 1, + [TYPE_POISON] = 1, + [TYPE_GROUND] = 0, + [TYPE_ROCK] = 0, + [TYPE_BUG] = 2, + [TYPE_GHOST] = 1, + [TYPE_STEEL] = 0, + [TYPE_MYSTERY] = 2, + [TYPE_FIRE] = 0, + [TYPE_WATER] = 1, + [TYPE_GRASS] = 2, + [TYPE_ELECTRIC] = 0, + [TYPE_PSYCHIC] = 1, + [TYPE_ICE] = 1, + [TYPE_DRAGON] = 2, + [TYPE_DARK] = 0, + + [NUM_POKEMON_TYPES + CONTEST_TYPE_COOL] = 0, + [NUM_POKEMON_TYPES + CONTEST_TYPE_BEAUTY] = 1, + [NUM_POKEMON_TYPES + CONTEST_TYPE_CUTE] = 1, + [NUM_POKEMON_TYPES + CONTEST_TYPE_SMART] = 2, + [NUM_POKEMON_TYPES + CONTEST_TYPE_TOUGH] = 0, }; ALIGN_4 static const u32 sMoveCategoryIconIndex[] = { - 0xF4, - 0xF6, - 0xF5 + [CLASS_PHYSICAL] = type_icons_physical_NCGR_lz, + [CLASS_SPECIAL] = type_icons_special_NCGR_lz, + [CLASS_STATUS] = type_icons_status_NCGR_lz, }; ALIGN_4 static const u8 sMoveCategoryIconPaletteIndex[] = { - 0x0, - 0x1, - 0x0 + [CLASS_PHYSICAL] = 0, + [CLASS_SPECIAL] = 1, + [CLASS_STATUS] = 0, }; +// clang-format on u32 TypeIcon_GetChar(enum PokemonType moveType) { @@ -83,17 +86,17 @@ u32 TypeIcon_GetChar(enum PokemonType moveType) u32 TypeIcon_GetPlttSrc(void) { - return 74; + return type_icons_shared_NCLR; } u32 TypeIcon_GetCell(void) { - return 242; + return type_icons_cell_NCER_lz; } u32 TypeIcon_GetAnim(void) { - return 243; + return misc_single_frame_anim_NANR_lz_14; } u8 TypeIcon_GetPltt(enum PokemonType moveType) diff --git a/tools/nitroarc/doc/nitroarc.1.adoc b/tools/nitroarc/doc/nitroarc.1.adoc index f2c6280d09..bfd4cf511b 100644 --- a/tools/nitroarc/doc/nitroarc.1.adoc +++ b/tools/nitroarc/doc/nitroarc.1.adoc @@ -102,6 +102,8 @@ evaluated. be replaced by an ASCII underscore in the respective preprocessor token. e.g., a member file located at “/path/to/file” will write “#define path_to_file”, followed by a single ASCII space (‘ ’) and its member index on the same line. + If a member file is included in the archive multiple times, then occurrences + past the first will be suffixed with the number of previous occurrences. *-N, --named*:: Mirror the local filesystem from _DIRECTORY_ in _ARCHIVE_, with _DIRECTORY_ diff --git a/tools/nitroarc/src/opmode_create.c b/tools/nitroarc/src/opmode_create.c index 564895b2b6..5a7979ca5e 100644 --- a/tools/nitroarc/src/opmode_create.c +++ b/tools/nitroarc/src/opmode_create.c @@ -118,10 +118,11 @@ extern int tool_create(const options_t *opts) { return errc; } -static bool strvec_has(const strvec_t *vec, char *s); -static int strvec_grow(strvec_t *vec); -static int strvec_push(strvec_t *vec, char *s); -static int lexicsort(const void *_lhs, const void *_rhs); +static size_t strvec_nhits(const strvec_t *vec, char *s, size_t max_i); +static bool strvec_has(const strvec_t *vec, char *s); +static int strvec_grow(strvec_t *vec); +static int strvec_push(strvec_t *vec, char *s); +static int lexicsort(const void *_lhs, const void *_rhs); #define is_hspace(c) ((c) == ' ' || (c) == '\t' || (c) == '\r') @@ -473,6 +474,22 @@ static char* guardify(const char *name, size_t size) { return guard; } +static char* guardify_nhits(const char *name, size_t size, size_t nhits) { + assert(name); + char *base = guardify(name, size); + if (base == NULL || nhits == 0) return base; + + size = snprintf(NULL, 0, "%s_%zu", base, nhits); + char *suffixed = malloc(size + 1); + + if (suffixed != NULL) { + snprintf(suffixed, size + 1, "%s_%zu", base, nhits); + } + + free(base); + return suffixed; +} + static int write_index(const char *fname, bool index, const strvec_t *files) { assert(fname); assert(files); @@ -505,7 +522,8 @@ static int write_index(const char *fname, bool index, const strvec_t *files) { fprintf(fnaix, "\n"); for (size_t i = 0; i < files->size; i++) { - char *defn = guardify(files->data[i], strlen(files->data[i])); + size_t nhits = strvec_nhits(files, files->data[i], i); + char *defn = guardify_nhits(files->data[i], strlen(files->data[i]), nhits); if (defn == NULL) { free(defn); goto erralloc; } fprintf(fnaix, "#define %s %zu\n", defn, i); @@ -530,6 +548,15 @@ cleanup: return errc; } +static size_t strvec_nhits(const strvec_t *vec, char *s, size_t max_i) { + size_t count = 0; + for (size_t i = 0; i < max_i; i++) { + if (strcmp(vec->data[i], s) == 0) count++; + } + + return count; +} + static bool strvec_has(const strvec_t *vec, char *s) { for (size_t i = 0; i < vec->size; i++) { if (strcmp(vec->data[i], s) == 0) return true;