Skip to content

Update to latest plugin-sdk#1

Open
x87 wants to merge 12 commits into
masterfrom
temp
Open

Update to latest plugin-sdk#1
x87 wants to merge 12 commits into
masterfrom
temp

Conversation

@x87

@x87 x87 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Features

  • Update to latest plugin-sdk (old version used custom build from 2013-2014)
  • Add automatic release publishing
  • Update to Visual Studio 2022 and remove hardcoded file paths

Fixes

  • Fixed a potential string handling issue that could occur with long texture names.
  • Fixed TXD lookup using the texture name instead of the TXD name.
  • Fixed sprite draw commands using the wrong color
  • Fixed alpha being applied to objects that aren't RenderWare atomics.
  • Fixed a cleanup issue in TxdManager::CleanAll caused by validating the wrong TXD slot.
  • Fixed 0D4F (SET_STRUCT_FIELD) writing garbage instead of the intended number value

Download: https://github.com/cleolibrary/NewOpcodes/releases/download/temp/NewOpcodes.cleo

@x87 x87 changed the title add release workflow Update to latest plugin-sdk Jul 1, 2026
@x87
x87 requested a review from Copilot July 1, 2026 13:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates NewOpcodes to build against the latest plugin-sdk, adjusting includes/API calls across opcode implementations, modernizing the Visual Studio project configuration, and adding CI automation for tagged releases.

Changes:

  • Updated multiple opcode implementations to match plugin-sdk API/ABI changes (RenderWare, CFont, CTxdStore pool access, matrix/quaternion helpers).
  • Modernized the VS project (v143 toolset, updated include/lib paths, C++23) and added plugin-sdk as a git submodule.
  • Added a GitHub Actions workflow to build and publish .cleo artifacts on release triggers.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
newOcpodes/Vector.cpp Adjusted includes and vector normalization call for updated SDK API.
newOcpodes/TxdManager.cpp Updated txd pool access to use GetAt() and null checks.
newOcpodes/Txd.cpp Fixed txd slot lookup to use txd name and updated pool/dictionary access.
newOcpodes/TextureManager.h Updated RenderWare include path for new SDK layout.
newOcpodes/TextureManager.cpp Updated RenderWare types and DDS loading call signature; added safer string handling (with a remaining bound-check issue noted).
newOcpodes/TextDrawer.cpp Updated font API calls (proportional/orientation/edge) to match new SDK.
newOcpodes/Text.cpp Updated CRGBA channel field names and removed duplicate return.
newOcpodes/SpriteDrawer.h Updated includes for CRGBA/RenderWare from new SDK layout.
newOcpodes/SpriteDrawer.cpp Migrated render state calls and rect field names; fixed gradient color4 assignment.
newOcpodes/Sprite.cpp Updated CRect field names used by opcode param extraction.
newOcpodes/SpotLightDrawer.h Updated CVector include path.
newOcpodes/SpotLightDrawer.cpp Updated patch/call helpers to new plugin API namespaces.
newOcpodes/ShapeDrawer.h Updated includes for RenderWare/CRGBA from new SDK layout.
newOcpodes/ShapeDrawer.cpp Migrated to RwRenderStateSet/RwIm2DRenderPrimitive and updated CRGBA packing API.
newOcpodes/Quat.cpp Adjusted matrix/quaternion interop and combineOp typing to match new SDK signatures.
newOcpodes/OpcodeParams.h Updated core include paths for RenderWare/CVector/CRGBA.
newOcpodes/OpcodeParams.cpp Updated CRGBA channel serialization field names.
newOcpodes/NewOpcodes.h Updated RenderWare include path for new SDK layout.
newOcpodes/NewOpcodes.cpp Migrated plugin initialization hooks to new plugin::Events API.
newOcpodes/newOcpodes.vcxproj Modernized toolset/config (VS2022, include/lib dirs, CRT choice, C++23, output dir).
newOcpodes/Matrix.cpp Updated RenderWare includes, combineOp typing, and pointer casts for SDK signature changes.
newOcpodes/General.cpp Updated various SDK field names/types and adjusted RsGlobal usage.
newOcpodes/Component.cpp Updated node name retrieval and object iteration callbacks for new SDK types.
newOcpodes/Colpoint.cpp Updated colpoint field names and lighting packing to new representation.
newOcpodes/Bone.cpp Updated bone/frame accessors and changed quaternion extraction approach (with an API/behavior concern noted).
.gitmodules Added plugin-sdk as a repository submodule.
.gitignore Ignored VS/build outputs and generated library artifact.
.github/workflows/release.yml Added Windows build-and-release pipeline for building plugin-sdk and publishing .cleo.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/release.yml Outdated
Comment thread newOpcodes/TextureManager.cpp Outdated
Comment thread newOpcodes/Bone.cpp Outdated
@x87
x87 marked this pull request as ready for review July 12, 2026 20:18
Comment thread .github/workflows/release.yml Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants