Skip to content

v8.0 Napoleon's plans (Release plan) #1

@wmysterio

Description

@wmysterio

Focus on SCR modes

  • I need to create files for SCR modes (III and VC) and propose to implement them in Sanny Builder.
  • Rename method names according to SCR mode (but not all).
  • Switching the sequence of opcode parameters according to the SCR mode.
    • Default opcodes for GTA 3 (SCR mode).
    • Cleo&Plugins opcodes for GTA 3 (SCR mode).
    • Default opcodes for GTA VC (SCR mode).
    • Cleo&Plugins opcodes for GTA VC (SCR mode).
    • Default opcodes for GTA SA (SCR mode).
    • Cleo&Plugins opcodes for GTA SA (SCR mode).

Focus on Sanny Builder library

  • Move the methods to new classes based on the SBL.
    • III.
    • VC.
    • SA.
  • Add enums that are in SBL.
    • III.
    • VC.
    • SA.
  • Remove all methods that are nop or unsupported.
    • III.
    • VC.
    • SA.

Sanny Builder, CLEO and CLI

  • The code should generate the USE directives for the CLEO plugins.
  • Add generator feature to include the names of CLEO plugins, which are not initially supported.
  • Tests and using new Sanny Builder's CLI.
  • Remove support for generating CLEO scripts due to the release of CLEO Redux..

Generator (base)

  • Implement method overloading in the places where it will be more convenient.
  • Update the "each" method in the Array<T> class.
  • Update a DEFINE OBJECTS section for new version.
  • The LocalTimer1 and LocalTimer2 properties have been renamed to TimerA and TimerB, respectively.
  • The Out<T> class has been removed.
  • Added support for the jt method for the III librarie.
  • Removed the GTA namespace. Moved all nested namespaces up one level and put base types in a common namespace.
  • Variables and arrays can no longer be initialized with the local, global, local_array and global_array methods.
  • Added decorative types AnyInt, AnyFloat, AnySString, AnyVString, AnyBool, AnyByte, AnyVehicle and GlobalInt.
  • The Value property has been removed. Use the set method.
  • The sString and vString classes are now only available in the SA librarie.
  • Added checks for using only global variables.
  • Renamed CarParkGenerator class to CarGenerator.

Generator (plugins):

  • It is necessary to add support for some generator plugins for III and VC games.
  • It is necessary to update ALL plugins for the SA mode.
  • Add plugin Original for GTA III (optional).
  • Add plugin Original for GTA VC (optional).

Generator (Condition class):

  • Allow the use of the gosub method as a condition.
  • Ignore inverting of conditional SCM functions.
  • The write method is no longer available.
  • Optimized inversion of conditions.
  • The class is now in the Core namespace.

Genetrator ( Union class):

  • Throw an error if the union has automatic properties.
  • When declaring a static field, there will be an error message.
  • The OnLocalAutoInit and OnGlobalAutoInit methods have been removed.
  • Automatic fields initialization.
  • A Union can be used as the field of another union; it is automatically initialized. The static modifier now affects all fields. If so, then the elements will be initialized as global variables. If not, they will be initialized as local variables.

Generator (other):

  • The XXXXX.Empty properties have been removed. Use the variable ? (think and write later).
  • Fast conversion of vehicle types:
    • If possible, make type casts of any available variables.
partial class TEST : Thread {
    Car car;
    public override void START( LabelJump label ) {
        // car.anchor( true ); // FAIL
        Boat boat = ( Boat ) car; // type cast (explicit only)
        boat.anchor( true ); // GOOD
        terminate_this_script();
    }
}
    • CarGenerator -> Car
    • CarGenerator -> Boat
    • CarGenerator -> Tank
    • Car -> Boat
    • Car -> Tank
    • Boat -> Car
    • Boat -> Tank
    • ...

Other goals:

  • Publishing the source code on GitHub.
  • Full documentation update.
  • Using the development environment Visual Studio 2022 as recommended by the IDE.
  • Transition to the platform .Net 6.0.
  • Require the use of C# 10 as the new recommended programming language when it is officially released.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions