@@ -30,6 +30,7 @@ struct Command fpCommands[COMMAND_MAX] = {
3030 {"clippy" , COMMAND_PRESS_ONCE , 0 , commandClippyProc },
3131 {"store ability" , COMMAND_PRESS_ONCE , 0 , commandStoreAbility },
3232 {"ignore walls" , COMMAND_PRESS_ONCE , 0 , commandIgnoreWalls },
33+ {"floor clip" , COMMAND_PRESS_ONCE , 0 , commandFloorClip },
3334};
3435
3536void showMenu (void ) {
@@ -174,11 +175,12 @@ void commandLoadPosProc(void) {
174175 pm_gPlayerStatus .targetYaw = fp .savedMovementAngle ;
175176
176177 if (pm_gPlayerStatus .actionState & ACTION_STATE_RIDE ) {
177- pm_Npc * partner = pm_get_npc_safe (-4 );
178+ pm_Npc * partner = pm_get_npc_safe (-4 ); // NPC_PARTNER
178179 if (partner ) {
179180 partner -> pos .x = fp .savedPos .x ;
180181 partner -> pos .y = fp .savedPos .y ;
181182 partner -> pos .z = fp .savedPos .z ;
183+ partner -> moveToPos .y = fp .savedPos .y ;
182184 partner -> yaw = fp .savedMovementAngle ;
183185 }
184186 }
@@ -311,3 +313,14 @@ void commandIgnoreWalls(void) {
311313 fpLog ("walls disabled" );
312314 }
313315}
316+
317+ void commandFloorClip (void ) {
318+ pm_gPlayerStatus .position .y -= 20 ;
319+ if (pm_gPlayerStatus .actionState & ACTION_STATE_RIDE ) {
320+ pm_Npc * partner = pm_get_npc_safe (-4 ); // NPC_PARTNER
321+ if (partner ) {
322+ partner -> pos .y -= 20 ;
323+ partner -> moveToPos .y -= 20 ;
324+ }
325+ }
326+ }
0 commit comments