Skip to content

Conversation

@jetrotal
Copy link
Contributor

@jetrotal jetrotal commented Dec 5, 2025

Implements Maniac Zoom support, allowing zooming of specific map layers with configurable center, rate, duration, and layer Itself.

  • Adds new interpreter command: 3032
  • zoom state management in Game_Screen: SetZoom() and UpdateZoom()
  • and rendering logic in Graphics to apply zoom transforms to selected layers: GetZForManiacLayer() - It has a weird reordenation of those entries, Graphics::LocalDraw()

Right now lacks support on savefiles.

Implements Maniac Zoom support, allowing zooming of specific map layers with configurable center, rate, duration, and layer. Adds new interpreter command, zoom state management in Game_Screen, and rendering logic in Graphics to apply zoom transforms to selected layers. This enables compatibility with Maniacs Patch zoom event commands.

Maniacs Patch - Zoom Command

Implements Maniac Zoom support, allowing zooming of specific map layers with configurable center, rate, duration, and layer. Adds new interpreter command, zoom state management in Game_Screen, and rendering logic in Graphics to apply zoom transforms to selected layers. This enables compatibility with Maniacs Patch zoom event commands.
@Ghabry
Copy link
Member

Ghabry commented Dec 5, 2025

While I appreciate all your contributions and I just havnt found time to look at all of them I have to criticize the AI usage especially in the commit messages and the pull request texts.

These texts are verbose and unfun to read.

Everything after Maniac Zoom feature implementation could be removed and just a remark "see commit message" added which mentions the most relevant parts. (or just copy-paste the commit message into the PR description. Don't reword anything, is a waste of time).

  • Added a new interpreter command Maniac_Zoom (CommandManiacZoom) that parses parameters and triggers zoom effects, including handling for cancellation/reset and wait behavior. This could be briefly mentioned in the commit message. "parses paremeters" is a useless information, all commands have to do this. About cancellation/reset and wait behaviour: Dont think its necessary to list all the detailed features it has.
  • Implemented zoom state management in Game_Screen, including current and target zoom positions/rates, duration, layer selection, and update logic for smooth interpolation. That is useful but imo too detailed. Is enough to mention that the zoom state is saved in Game_Screen where the necessary fields were added. Btw: I don't see this state preserved in the save file? What is Maniacs doing here?
  • Integrated Maniac Zoom into the graphics rendering pipeline: affected layers are rendered to an intermediate buffer and zoomed using the specified parameters, while other layers are drawn normally on top. This ensures the zoom effect is correctly applied to the intended layer group. Could be shortened: Modified the rendering code to handle the zoom feature. Everything below a certain layer is drawn zoomed, the layers above are drawn normally on top. Btw why is drawing in an intermediate buffer necessary here? It should also work without.
  • Added utility for mapping Maniac Zoom layers to drawable Z-order, ensuring correct rendering boundaries for zoomed content. Here I wonder more about the why instead of the what. Why was this function necessary? Don't we already have layer mapping code? What is Maniacs doing different here?
  • Updated includes and initialization to support new features and ensure proper access to game screen and main data. This information is unnecessary. Its something you always have to do

Same for the commit message. Make the texts short bullet points. Keep it to a bare minimum (except when you think that a feature is so complecated it is worth a longer explanation)

Remove everything that is redundant like this last sentence:

This enables compatibility with Maniacs Patch zoom event commands.

@jetrotal
Copy link
Contributor Author

jetrotal commented Dec 5, 2025

removed all the automatic text from the commit description. I was simply tired after fighting the code all night and let copilot autofill it.

The highest layer attatched should be the frame one, not overlay.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants