Skip to content

4.0.0 Release Plan #277

@x87

Description

@x87

Download

Features

Bug Fixes

Third-party

  • update CLEO library to CLEO5 removed from archive due to false virus reports
  • update CLEO+ plugin to v1.2.0
    • update SASCM.INI
  • new theme NeoDark by JaggerJam and Johnnie
  • update some existing themes by @VitalRus95
  • update Portuguese translation by @johnnie-br
  • update Chinese translation by @BengbuGuards

Breaking Changes

  • Alloc command allowed ADMA type as a noop command: e.g. Alloc(&2, 4). Now this is a compile error.
  • Typed array elements allowed hexadecimal notation for size: e.g. array(index,0xff) (float array of size 0xf). Now this is a compile error.
  • String literals in opcode argument now support escape sequences similar to strings inside hex..end. This behavior can be disabled with SB3_COMPAT debug option
  • second argument in Alloc command is now required (previously was optional and 0 by default). This behavior can be disabled with SB3_COMPAT debug option.
  • hardcoded indexes in opcodes 05B6, 0A66, 0A67, 0A68, 0A6E are no longer supported. This behavior can be disabled with SB3_COMPAT debug option
  • constant can not be used in a new variable name (inconsistent result of var declarations #289)
const a = $100 
int a = 0

is now a compile error (0090) in 4.0.0 beta.0

  • variable and constant names can not match class names (int car or const car) is now a compile error)
  • callable labels starting with a number are now a syntax error. Previously you can do the following:
:1

1() // gosub @1

this won't compile now. It is still possible to reference such label using @ prefix (e.g. jump @1 or gosub @1)

Also disassembler checks script names (opcode 03A4) and if the name starts with a number, it prefixes all labels with an underscore (_). It should solve the compilation issue in the original script of Vice City Stories that has a script named '99RED'. All labels of this script now start with _99RED

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions