mirror of
https://github.com/pret/pmd-sky.git
synced 2026-10-02 15:18:16 -05:00
Moved AI attack BSS vars to C
This commit is contained in:
@@ -2,12 +2,8 @@
|
||||
.include "overlay_29_bss_0237CA18.inc"
|
||||
|
||||
.bss
|
||||
.global AI_CAN_ATTACK_IN_DIRECTION
|
||||
AI_CAN_ATTACK_IN_DIRECTION:
|
||||
.space 0x8
|
||||
.global AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS
|
||||
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS:
|
||||
.space 0x8
|
||||
; AI_POTENTIAL_ATTACK_TARGET_WEIGHTS is defined twice within AiConsiderMove, so it needs two separates globals until the function is matched.
|
||||
#ifndef NONMATCHING
|
||||
.global AI_POTENTIAL_ATTACK_TARGET_WEIGHTS
|
||||
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS:
|
||||
.global AI_POTENTIAL_ATTACK_TARGET_WEIGHTS_2
|
||||
@@ -16,6 +12,7 @@ AI_POTENTIAL_ATTACK_TARGET_WEIGHTS_2:
|
||||
.global AI_POTENTIAL_ATTACK_TARGETS
|
||||
AI_POTENTIAL_ATTACK_TARGETS:
|
||||
.space 0x20
|
||||
#endif
|
||||
.global ov29_0237CA68
|
||||
ov29_0237CA68:
|
||||
.space 0x1
|
||||
|
||||
@@ -12,6 +12,15 @@ struct ai_possible_move
|
||||
s32 weight;
|
||||
};
|
||||
|
||||
// Stores whether the AI can use an attack in each direction.
|
||||
extern bool8 AI_CAN_ATTACK_IN_DIRECTION[NUM_DIRECTIONS];
|
||||
// Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.
|
||||
extern u8 AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS[NUM_DIRECTIONS];
|
||||
// Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.
|
||||
extern s32 AI_POTENTIAL_ATTACK_TARGET_WEIGHTS[NUM_DIRECTIONS];
|
||||
// Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.
|
||||
extern struct entity *AI_POTENTIAL_ATTACK_TARGETS[NUM_DIRECTIONS];
|
||||
|
||||
// Sets all values in AI_CAN_ATTACK_IN_DIRECTION to false.
|
||||
void ResetAiCanAttackInDirection();
|
||||
// The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
|
||||
// Used in GetPossibleAiThrownItemDirections to indicate whether a certain direction enum value is already being used or not.
|
||||
extern bool8 AI_THROWN_ITEM_DIRECTION_IS_USED[NUM_DIRECTIONS];
|
||||
// Used to store the probabilities matching the directions in THROWN_ITEM_DIRECTIONS.
|
||||
extern u32 AI_THROWN_ITEM_PROBABILITIES[NUM_DIRECTIONS];
|
||||
// Used to store the directions output by GetPossibleAiThrownItemDirections.
|
||||
extern u32 AI_THROWN_ITEM_DIRECTIONS[NUM_DIRECTIONS];
|
||||
|
||||
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
|
||||
|
||||
2
main.lsf
2
main.lsf
@@ -492,7 +492,6 @@ Overlay OVY_29
|
||||
Object src/dungeon_ai_items.o
|
||||
Object src/dungeon_ai_items_1.o
|
||||
Object asm/overlay_29_data_02353700.o
|
||||
Object asm/overlay_29_bss_0237CA18.o
|
||||
Object asm/overlay_29_0230F02C.o
|
||||
Object src/overlay_29_0230F810.o
|
||||
Object asm/overlay_29_0230F840.o
|
||||
@@ -524,6 +523,7 @@ Overlay OVY_29
|
||||
Object asm/overlay_29_02318E70.o
|
||||
Object src/inflict_status.o
|
||||
Object src/dungeon_ai_attack.o
|
||||
Object asm/overlay_29_bss_0237CA18.o
|
||||
Object asm/overlay_29_0231A460.o
|
||||
Object src/dungeon_ai_attack_1.o
|
||||
Object asm/overlay_29_0231A7A0.o
|
||||
|
||||
@@ -25,10 +25,14 @@
|
||||
#include "overlay_29_0231ACAC.h"
|
||||
#include "position_util.h"
|
||||
|
||||
extern bool8 AI_CAN_ATTACK_IN_DIRECTION[NUM_DIRECTIONS];
|
||||
extern u8 AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS[NUM_DIRECTIONS];
|
||||
extern s32 AI_POTENTIAL_ATTACK_TARGET_WEIGHTS[NUM_DIRECTIONS];
|
||||
extern struct entity *AI_POTENTIAL_ATTACK_TARGETS[NUM_DIRECTIONS];
|
||||
bool8 AI_CAN_ATTACK_IN_DIRECTION[NUM_DIRECTIONS] = {0};
|
||||
u8 AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS[NUM_DIRECTIONS] = {0};
|
||||
|
||||
// AI_POTENTIAL_ATTACK_TARGET_WEIGHTS is defined twice within AiConsiderMove, so it needs two separate symbols in ASM until the function is matched.
|
||||
#ifdef NONMATCHING
|
||||
s32 AI_POTENTIAL_ATTACK_TARGET_WEIGHTS[NUM_DIRECTIONS] = {0};
|
||||
struct entity *AI_POTENTIAL_ATTACK_TARGETS[NUM_DIRECTIONS] = {0};
|
||||
#endif
|
||||
|
||||
void ResetAiCanAttackInDirection()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user