mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-24 14:46:19 +02:00
- reskate.room.open, leave and state, with the room permission: ReSkate walks the game's menu to the Skaters page (its navigation events and RB on an internal scripted pad, as PR 297 and PR 230 did), draws the local skater on the room's floor and hides the room's own skater and board; other players are not sent the room. Extension/World/character_room, the room placement and hiding in skater_animation, and post_native_ui_event made general. - reskate.input.text: what is typed while the plugin's screen is open; while it types, Esc is the plugin's. - Animator Studio opens in its room (the Studio room setting, as the PR's), under its loading screen, or where the skater is when the walk fails; its card's name, trick and numbers are typed into in place.
23 lines
939 B
C++
23 lines
939 B
C++
#pragma once
|
|
#include <Windows.h>
|
|
#include <Xinput.h>
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
// A scripted Xbox pad for player 0, read by the game through the XInput hook (PR 297, after PR 230 by
|
|
// Norms): the character room's walk presses RB on it (Extension/World/character_room.cpp). Not for
|
|
// plugins: they never press the game's buttons.
|
|
namespace dingosdk::overlay {
|
|
struct PadStep {
|
|
std::uint32_t tick{}; // game ticks from the start of the script
|
|
XINPUT_GAMEPAD pad{};
|
|
};
|
|
// Any thread. Starts at the next game tick; each step holds until the next step's tick, so frame rate does not matter.
|
|
// After the last step the pad stays connected and neutral for 2 s.
|
|
void play_pad(std::vector<PadStep> steps);
|
|
// The game thread calls this once a game tick.
|
|
void pad_tick() noexcept;
|
|
// True when it wrote the script's pad to `state`.
|
|
bool scripted_pad(DWORD user, XINPUT_STATE &state) noexcept;
|
|
} // namespace dingosdk::overlay
|