mirror of
https://github.com/jugeeya/UltimateTrainingModpack.git
synced 2024-11-20 08:54:15 +00:00
change DI toggles to set DI with stick position; left vs right dpad
This commit is contained in:
parent
8e51de5cca
commit
c7713ab187
3 changed files with 30 additions and 21 deletions
|
@ -100,12 +100,20 @@ u64 appeal_s_replace(L2CAgent* l2c_agent, void* variadic) {
|
||||||
print_string(acmd.module_accessor,
|
print_string(acmd.module_accessor,
|
||||||
ATTACK_strings[ATTACK_STATE]);
|
ATTACK_strings[ATTACK_STATE]);
|
||||||
} else {
|
} else {
|
||||||
DI_STATE = (DI_STATE + 1) % NUM_DI_STATES;
|
if (ControlModule::check_button_on(acmd.module_accessor, CONTROL_PAD_BUTTON_APPEAL_S_L)) {
|
||||||
|
DI_STATE = DI_STATE == NONE ? DI_RANDOM_IN_AWAY : NONE;
|
||||||
|
} else {
|
||||||
|
DI_STATE = DI_STATE == NONE ? SET_DI : NONE;
|
||||||
|
}
|
||||||
|
|
||||||
const char* DI_strings[NUM_DI_STATES] = {
|
const char* DI_strings[NUM_DI_STATES] = {
|
||||||
"NONE", "AWAY", "DOWN AWAY", "DOWN", "DOWN IN",
|
"NONE", "SET_DI", "RANDOM\nIN AWAY"};
|
||||||
"IN", "UP IN", "UP", "UP AWAY", "RANDOM\nIN AWAY"};
|
|
||||||
|
|
||||||
print_string(acmd.module_accessor, DI_strings[DI_STATE]);
|
print_string(acmd.module_accessor, DI_strings[DI_STATE]);
|
||||||
|
if (DI_STATE == SET_DI) {
|
||||||
|
DI_stick_x = ControlModule::get_stick_x(acmd.module_accessor);
|
||||||
|
DI_stick_y = ControlModule::get_stick_y(acmd.module_accessor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,15 +6,15 @@
|
||||||
/* Up Taunt */
|
/* Up Taunt */
|
||||||
bool HITBOX_VIS = 1;
|
bool HITBOX_VIS = 1;
|
||||||
|
|
||||||
/* Side Taunt
|
/* Side Taunt */
|
||||||
0, 0.785398, 1.570796, 2.356194, -3.14159, -2.356194, -1.570796, -0.785398
|
|
||||||
0, pi/4, pi/2, 3pi/4, pi, 5pi/4, 3pi/2, 7pi/4
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* DI */
|
/* DI */
|
||||||
|
float DI_stick_x = 0;
|
||||||
|
float DI_stick_y = 0;
|
||||||
int DI_STATE = NONE;
|
int DI_STATE = NONE;
|
||||||
#define DI_RANDOM_IN_AWAY 9
|
#define SET_DI 1
|
||||||
#define NUM_DI_STATES 10
|
#define DI_RANDOM_IN_AWAY 2
|
||||||
|
#define NUM_DI_STATES 3
|
||||||
|
|
||||||
/* Attack Option */
|
/* Attack Option */
|
||||||
#define MASH_NAIR 0
|
#define MASH_NAIR 0
|
||||||
|
|
|
@ -59,20 +59,21 @@ float get_float_replace(u64 module_accessor, int var) {
|
||||||
if (is_training_mode() && is_operation_cpu(module_accessor) &&
|
if (is_training_mode() && is_operation_cpu(module_accessor) &&
|
||||||
is_in_hitstun(module_accessor)) {
|
is_in_hitstun(module_accessor)) {
|
||||||
if (DI_STATE != NONE) {
|
if (DI_STATE != NONE) {
|
||||||
float angle = (DI_STATE - 1) * M_PI / 4.0;
|
float stick_x = 0.0, stick_y = 0.0;
|
||||||
|
if (DI_STATE == SET_DI) {
|
||||||
// Either 0 (right) or PI (left)
|
stick_x = DI_stick_x;
|
||||||
if (DI_STATE == DI_RANDOM_IN_AWAY) {
|
stick_y = DI_stick_y;
|
||||||
angle = app::sv_math::rand(hash40("fighter"), 2) * M_PI;
|
} else if (DI_STATE == DI_RANDOM_IN_AWAY) {
|
||||||
|
// either 1.0 or -1.0
|
||||||
|
stick_x = (float) (app::sv_math::rand(hash40("fighter"), 2) * 2.0) - 1;
|
||||||
|
stick_y = 0.0;
|
||||||
}
|
}
|
||||||
// If facing left, reverse angle
|
|
||||||
if (PostureModule::lr(module_accessor) != -1.0) angle -= M_PI;
|
|
||||||
|
|
||||||
if (var == FIGHTER_STATUS_DAMAGE_WORK_FLOAT_VECOR_CORRECT_STICK_X)
|
// If facing left, reverse stick x
|
||||||
return cos(angle);
|
if (var == FIGHTER_STATUS_DAMAGE_WORK_FLOAT_VECOR_CORRECT_STICK_X)
|
||||||
|
return stick_x * PostureModule::lr(module_accessor);
|
||||||
if (var == FIGHTER_STATUS_DAMAGE_WORK_FLOAT_VECOR_CORRECT_STICK_Y)
|
if (var == FIGHTER_STATUS_DAMAGE_WORK_FLOAT_VECOR_CORRECT_STICK_Y)
|
||||||
return sin(angle);
|
return stick_y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue