blob: 705695a8cb1fc2834b5ff42fbd6b2b632702164a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#include <libultraship/bridge/consolevariablebridge.h>
#include "2s2h/GameInteractor/GameInteractor.h"
#include "2s2h/ShipInit.hpp"
extern "C" {
#include "variables.h"
void Player_Action_93(Player* player, PlayState* play);
}
#define CVAR_NAME "gEnhancements.Player.FastFlowerLaunch"
#define CVAR CVarGetInteger(CVAR_NAME, 0)
void RegisterFastFlowerLaunch() {
COND_ID_HOOK(OnActorUpdate, ACTOR_PLAYER, CVAR, [](Actor* actor) {
Player* player = GET_PLAYER(gPlayState);
if (player->actionFunc != Player_Action_93) {
return;
}
DynaPolyActor* dyna;
Input* input = &gPlayState->state.input[0];
if (player->av1.actionVar1 != 0 && !(player->av1.actionVar1 == 1 && player->unk_B48 > -170.0f) &&
player->av2.actionVar2 != 10 && !CHECK_BTN_ALL(input->cur.button, BTN_A)) {
player->unk_ABC = -3900.0f;
player->unk_B48 = -170.0f;
player->av1.actionVar1 = 2;
player->av2.actionVar2 = 10;
player->actor.scale.y = 0.01f;
dyna = DynaPoly_GetActor(&gPlayState->colCtx, player->actor.floorBgId);
if (dyna != NULL) {
player->actor.world.pos.x = dyna->actor.world.pos.x;
player->actor.world.pos.z = dyna->actor.world.pos.z;
}
}
});
}
static RegisterShipInitFunc initFunc(RegisterFastFlowerLaunch, { CVAR_NAME });
|