Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor the core build pipeline #350

Merged
merged 7 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 14 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: all release debug check rom target format clean distclean setup_release setup_debug configure
.PHONY: all release debug check rom data target format clean distclean setup_release setup_debug configure

MESON ?= meson
NINJA ?= ninja
Expand Down Expand Up @@ -61,16 +61,25 @@ release: setup_release rom

.NOTPARALLEL: debug
debug: setup_debug rom
$(MESON) compile -C $(BUILD) debug.nef overlay.map
$(NINJA) -C $(BUILD) debug.nef overlay.map

check: rom
$(MESON) test -C $(BUILD)

rom: $(BUILD)/build.ninja
$(MESON) compile -C $(BUILD) pokeplatinum.us.nds
.NOTPARALLEL: rom
# We use a two-stage pipeline to absolve what appears to be a bug in Ninja
# where generated headers that are listed as order-only dependencies are not
# respected by the depfiles generated by compiling source code. To that end, we
# generate data-targets first (archives and generated headers), then proceed
# with compiling the ROM code.
rom: $(BUILD)/build.ninja data
$(NINJA) -C $(BUILD) pokeplatinum.us.nds

data: $(BUILD)/build.ninja
$(NINJA) -C $(BUILD) data

target: $(BUILD)/build.ninja
$(MESON) compile -C $(BUILD) $(MESON_TARGET)
$(NINJA) -C $(BUILD) $(MESON_TARGET)

format: $(BUILD)/build.ninja
$(NINJA) -C $(BUILD) clang-format
Expand Down
17 changes: 6 additions & 11 deletions asm/macros/btlcmd.inc
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
.ifndef ASM_BATTLE_SCRIPT_INC
.set ASM_BATTLE_SCRIPT_INC, 1
#define __ASM_PM_

#include "constants/battle.h"
#include "constants/items.h"
#include "constants/species.h"
#include "generated/abilities.h"
#include "generated/items.h"
#include "generated/battle_subscripts.h"
#include "generated/game_records.h"
#include "generated/genders.h"
#include "generated/move_attributes.h"
#include "generated/moves.h"
#include "generated/pokemon_types.h"
#include "gmm/message_bank_battle_strings.h"
#include "generated/species_data_params.h"
#include "battle/btlcmd.h"

.include "consts/battle.inc"
.include "consts/battle_subscripts.inc"
.include "consts/btlcmd.inc"
.include "consts/game_records.inc"
.include "consts/gender.inc"
.include "consts/moves.inc"
.include "consts/pokemon.inc"
#include "res/text/bank/battle_strings.h"

.equ FALSE, 0
.equ TRUE, 1
Expand Down
2 changes: 1 addition & 1 deletion asm/macros/movement.inc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.include "consts/movement.inc"
#include "generated/movement_actions.h"

.macro MoveAction_000 length=1
.short MOVEMENT_ACTION_000
Expand Down
20 changes: 11 additions & 9 deletions asm/macros/scrcmd.inc
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
#include "generated/badges.h"
#include "generated/catching_show_points_category.h"
#include "generated/game_records.h"
#include "generated/items.h"
#include "generated/journal_location_events.h"
#include "generated/journal_online_events.h"
#include "generated/map_headers.h"
#include "generated/moves.h"
#include "generated/poketch_apps.h"
#include "generated/save_types.h"
#include "generated/sdat.h"
#include "generated/species.h"
#include "generated/catching_show_points_category.h"
.include "macros/movement.inc"
.include "consts/badges.inc"
.include "consts/game_records.inc"
.include "consts/journal.inc"
.include "consts/map.inc"
.include "consts/poketch.inc"
.include "consts/scrcmd.inc"
.include "consts/sdat.inc"

#include "macros/movement.inc"

#include "res/trainers/trdata.naix"

Expand Down
28 changes: 11 additions & 17 deletions asm/trainer_ai/trainer_ai_script.s
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
.ifndef ASM_BATTLE_SCRIPT_INC
.set ASM_BATTLE_SCRIPT_INC, 1
#define __ASM_PM_

#include "constants/battle.h"
#include "constants/moves.h"
#include "constants/items.h"
#include "constants/battle/trainer_ai.h"
#include "generated/abilities.h"
#include "generated/moves.h"
#include "generated/genders.h"
#include "generated/pokemon_types.h"

.include "consts/battle.inc"
.include "consts/gender.inc"
.include "consts/moves.inc"
.include "consts/pokemon.inc"
.include "consts/trainer_ai.inc"
.include "macros/aicmd.inc"
#include "macros/aicmd.inc"

.text

Expand Down Expand Up @@ -201,7 +195,7 @@ Basic_ScoreMoveEffect:
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_EVA_UP_2_MINIMIZE, Basic_CheckHighStatStage_Evasion
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_CURSE, Basic_CheckCurse
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_SET_SPIKES, Basic_CheckSpikes
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_IGNORE_EVASION_REMOVE_GHOST_IMMUNE, Basic_CheckForesight
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_FORESIGHT, Basic_CheckForesight
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_ALL_FAINT_3_TURNS, Basic_CheckPerishSong
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_WEATHER_SANDSTORM, Basic_CheckSandstorm
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_ATK_UP_2_STATUS_CONFUSION, Basic_CheckCannotConfuse
Expand All @@ -210,9 +204,9 @@ Basic_ScoreMoveEffect:
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_RANDOM_POWER_MAYBE_HEAL, Basic_CheckNonStandardDamageOrChargeTurn
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_POWER_BASED_ON_LOW_FRIENDSHIP, Basic_CheckNonStandardDamageOrChargeTurn
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_PREVENT_STATUS, Basic_CheckAlreadyUnderSafeguard
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_RANDOM_POWER_10_CASES, Basic_CheckMagnitude
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_PSYWAVE, Basic_CheckMagnitude
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_PASS_STATS_AND_STATUS, Basic_CheckBatonPass
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_10_DAMAGE_FLAT, Basic_CheckNonStandardDamageOrChargeTurn
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_20_DAMAGE_FLAT, Basic_CheckNonStandardDamageOrChargeTurn
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_HEAL_HALF_MORE_IN_SUN, Basic_CheckCanRecoverHP
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_UNUSED_133, Basic_CheckCanRecoverHP
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_UNUSED_134, Basic_CheckCanRecoverHP
Expand Down Expand Up @@ -1706,7 +1700,7 @@ Expert_Main:
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_CURSE, Expert_Curse
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_PROTECT, Expert_Protect
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_SET_SPIKES, Expert_Spikes
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_IGNORE_EVASION_REMOVE_GHOST_IMMUNE, Expert_Foresight
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_FORESIGHT, Expert_Foresight
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_SURVIVE_WITH_1_HP, Expert_Endure
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_PASS_STATS_AND_STATUS, Expert_BatonPass
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_HIT_BEFORE_SWITCH, Expert_Pursuit
Expand Down Expand Up @@ -3230,7 +3224,7 @@ Expert_Encore_EncouragedMoveEffects:
TableEntry BATTLE_EFFECT_STATUS_NIGHTMARE
TableEntry BATTLE_EFFECT_PROTECT
TableEntry BATTLE_EFFECT_SWITCH_ABILITIES
TableEntry BATTLE_EFFECT_IGNORE_EVASION_REMOVE_GHOST_IMMUNE
TableEntry BATTLE_EFFECT_FORESIGHT
TableEntry BATTLE_EFFECT_ALL_FAINT_3_TURNS
TableEntry BATTLE_EFFECT_WEATHER_SANDSTORM
TableEntry BATTLE_EFFECT_SURVIVE_WITH_1_HP
Expand Down Expand Up @@ -6639,7 +6633,7 @@ TagStrategy_Main:
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_40_DAMAGE_FLAT, TagStrategy_ScoreMove
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_LEVEL_DAMAGE_FLAT, TagStrategy_ScoreMove
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_RANDOM_DAMAGE_1_TO_150_LEVEL, TagStrategy_ScoreMove
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_10_DAMAGE_FLAT, TagStrategy_ScoreMove
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_20_DAMAGE_FLAT, TagStrategy_ScoreMove

; If the move is not-very-effective, try to reduce its score
IfMoveEffectivenessEquals TYPE_MULTI_HALF_DAMAGE, TagStrategy_TryScoreMinus1
Expand Down Expand Up @@ -6702,7 +6696,7 @@ TagStrategy_CheckBeforeScoring:
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_40_DAMAGE_FLAT, TagStrategy_CheckSpecialScoring
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_LEVEL_DAMAGE_FLAT, TagStrategy_CheckSpecialScoring
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_RANDOM_DAMAGE_1_TO_150_LEVEL, TagStrategy_CheckSpecialScoring
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_10_DAMAGE_FLAT, TagStrategy_CheckSpecialScoring
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_20_DAMAGE_FLAT, TagStrategy_CheckSpecialScoring

; If the move is super-effective, try to increase its score
IfMoveEffectivenessEquals TYPE_MULTI_DOUBLE_DAMAGE, TagStrategy_TryPrioritizingDoubleEffective
Expand Down Expand Up @@ -7099,7 +7093,7 @@ TagStrategy_PartnerKnowsHelpingHand:
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_40_DAMAGE_FLAT, TagStrategy_PartnerHelpingHand_End
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_LEVEL_DAMAGE_FLAT, TagStrategy_PartnerHelpingHand_End
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_RANDOM_DAMAGE_1_TO_150_LEVEL, TagStrategy_PartnerHelpingHand_End
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_10_DAMAGE_FLAT, TagStrategy_PartnerHelpingHand_End
IfCurrentMoveEffectEqualTo BATTLE_EFFECT_20_DAMAGE_FLAT, TagStrategy_PartnerHelpingHand_End
FlagMoveDamageScore FALSE
IfLoadedNotEqualTo AI_NO_COMPARISON_MADE, ScorePlus1

Expand Down
32 changes: 0 additions & 32 deletions consts/badges.json

This file was deleted.

Loading
Loading