Plugins: Hall of Meat and grind exits are plugin mods now; their C++ is gone

Hall of Meat (contrib/plugins/hall-of-meat) and grind exit triggers
(contrib/plugins/grind-exits) are Lua plugins: the bail model, its Meat card,
each map's best, the trigger rules, settings, console commands and menu panels
are theirs, with their own checks that dingosdk_plugin_tests runs.

What has to run in the game stays in core as plugin services:
- every physics step of the skater (skater_physics, the physics_step event,
  permission events.physics);
- the skater's x-ray (xray, xray_render, xray_skeleton; reskate.skater.xray and
  the draw handler's d:skeleton);
- skate.'s bottom left HUD corner (hud_corner; reskate.hud.corner);
- the game's slow motion, never in a session (game_speed; reskate.time.slow and
  speed, permission game.speed);
- the side of the next pop out of a grind and pad controls kept from the game
  (grind_exit; reskate.skater.grind_exit, the grind_exit event, reskate.input.hide);
- skate.'s own pictures by name (game_images; d:game_image), d:gradient and a
  font for drawn text.

Removed: Extension/HallOfMeat, grind_exit_control and its commands, the HALL OF
MEAT and GRIND EXITS add-on pages, home tile, hub and native menu rows, their
menu models, and the hallofmeat and grindexit built-in commands.
This commit is contained in:
AyeZeeBB committed 2026-10-19 16:51:28 -05:00
1 parent 2d3b77701d
commit db52508bdb
86 files changed
+3041 -3201

No files matched your search

-9
View File
@@ -15,11 +15,9 @@
#include "Extension/Settings/job_spin.h"
#include "Extension/Settings/replay_drafts.h"
#include "Engine/Game/World/client_state.h"
#include "Extension/HallOfMeat/hall_of_meat.h"
#include "Extension/Plugins/plugin_runtime.h"
#include "Extension/Plugins/plugin_game_runtime.h"
#include "Extension/ReplayKeyframes/replay_keyframes.h"
#include "Extension/Skater/grind_exit_control.h"
#include "Extension/Skater/camera_observer.h"
#include "Extension/UI/NativeMenu/native_menu.h"
#include "Extension/Multiplayer/Hud/native_party.h"
@@ -1092,9 +1090,7 @@ void update_model(std::uintptr_t client, TickState& frame) {
DINGO_PROFILE_ZONE("tick/item browser");
dingosdk::update_local_item_browser();
}
dingosdk::hall_of_meat::on_client_tick();
dingosdk::breakable_deck::tick();
dingosdk::grind_exit_control::on_client_tick(client);
{
DINGO_PROFILE_ZONE("tick/plugins");
dingosdk::plugins::on_client_tick();
@@ -1106,7 +1102,6 @@ void update_model(std::uintptr_t client, TickState& frame) {
r.multiplayer_map = description.level.empty() ? std::string{} : description.level + "|" + description.lm_level;
const auto& current_level = description.lm_level.empty() ? description.level : description.lm_level;
dingosdk::live_mods::set_current_level(current_level);
dingosdk::hall_of_meat::set_level(current_level);
dingosdk::plugins::set_level(current_level);
dingosdk::replay_drafts::on_client_tick(r.base, state);
// A live mod apply hands over the destinations its mods declare. A map
@@ -1237,10 +1232,6 @@ void update_model(std::uintptr_t client, TickState& frame) {
const auto missions_model = dingosdk::local_profile_missions();
model.progression = dingosdk::local_profile_progression();
model.player_card = dingosdk::local_profile_player_card();
model.hall_of_meat = {dingosdk::hall_of_meat::available(), dingosdk::hall_of_meat::enabled()};
model.grind_exit = {dingosdk::grind_exit_control::available(), dingosdk::grind_exit_control::enabled(),
dingosdk::grind_exit_control::toe_heel(), dingosdk::grind_exit_control::stance(),
dingosdk::grind_exit_control::strength()};
model.keyframe_smoothing = {dingosdk::replay_keyframes::available(), dingosdk::replay_keyframes::on(),
dingosdk::replay_keyframes::smoothness()};
model.bindings = dingosdk::local_profile_controller_bindings();