# This is a short summary of breaking changes.
# Please consult core-changes.txt for more information.

-- POL100.2.0 [work-in-progress] --
11-17-2025 Kevin:
    EquipScript/UnequipScript will now be given an OfflineCharacterRef for the equip_on/equip_by and unequip_on/unequip_by parameters,
    allowing scripts to access the mobile if the mobile is offline.

    This is considered a breaking change because your scripts _may_ be affected:

      - Using `TypeOf()` and `TypeOfInt()` on the character parameters will no longer return "MobileRef" and OT_MOBILEREF,
        and instead return "OfflineMobileRef" and OT_OFFLINEMOBILEREF.
      - Expressions that check for truthiness of the character parameter, eg. `if ( equipped_on )`, will now evaluate to true, regardless
        if the character is logged in.

    If your EquipScript/UnequipScript should only perform actions if the character is indeed logged in, check the `logged_in` member of
    the character, eg. `equipped_on.logged_in`.
11-02-2025 Nando:
    Config files won't accept property names containing '{' or '}' anymore
09-28-2025:
    The `TypeOf()` and `TypeOfInt()` for a class instance has been changed from "Class" and 102 to "ClassInstanceRef" and 42.
    The basic.em constant for class instance references was missing, and has been added as:

      const OT_CLASSINSTANCEREF := 42;
02-20-2025:
    Start of the core now fails if the datastore.txt contains a datafile which no longer exists.
    This can happen if datafiles where manually removed without updating the datastore.txt
10-09-2024:
    The words `class` and `endclass` are now special keywords in the Escript language, and any identifiers (variable or function names)
    will need to be refactored and renamed.
03-18-2024:
    The file format for uoconvert's realm output has changed. Realms must be re-generated.
-- POL100.1.0 --
    The ability to generate the Escript wordlist via the -W argument to ecompile.exe has been removed. Passing this argument will
    result in an unknown option error.
2021-03-04:
    The old compiler has now been removed from ecompile. You may no longer use the -g- or -G arguments. Any value of UseCompiler2020
    in ecompile.cfg will be ignored without warning.
-- POL100.0.0 --
2020-10-17:
    polcore().version now returns a string like "100.0.0"
    Package `CoreRequired` fields must use a semantic version such as 99.0.0
      - Numbers like 98 will be understood as 98.0.0
      - Numbers like 98.1 will be understood as 98.1.0

2020-09-15:
    The new compiler could change script behavior.
    Be sure to run the compiler in "comparison mode" and update any scripts that have differences so that this doesn't happen.

2020-08-13:
    item.hitscript and item.onhitscript now *always* return the full path of their scripts (":pkgname:script")

2020-01-03:
    AddAmount() now returns item reference on success instead of 1. Remove any explicit comparisons (AddAmount() == 1).

2019-09-21:
    The core is now Unicode aware!
    - Note: Item/Mobile names still need to be in ASCII format.
    - If invalid unicode is detected while compiling or reading a file, ISO8859 will be assumed.
    - Unicode functions now accept a string directly. Arrays are still kept for backwards
      compatibility, but that may change in the future.
    - Non-unicode functions that receive a unicode string will use the unicode version
      automatically with langcode "ENU".
    - party.cfg:
        OnPublicChat second parameter is now a string object
        OnPrivateChat third parameter is now a string object
        ChangePublicChat second parameter is now a string object
        ChangePrivateChat third parameter is now a string object
    - unicode.em: RequestInputUC() return value no more contains member uc_text
    - CharRef.clientinfo struct members 'video_description' and 'langcode' are now strings
    - PacketObj.getunicodestring()/getunicodestringflipped() return a string
    - Textcmd arguments are now (CharRef, String, [langcode=String])
    - SpeechEvent no longer contains uc_text member
    - scripts/misc/charprofile.ecl fourth parameter is a string

2019-04-26:
    - POL now requires at least Windows Vista / Server 2008. Let us know if Windows XP was important to you.
    - Removed: pol.cfg option "ListenPort". You should use a Listener in uoclient.cfg.
    - Removed: pol.cfg option "Multithread". POL is now always multithreaded.
    - Removed: method os::System_RPM(). It was only useful for singlethreaded POL.

# >> Older breaking changes in POL100 might be missing here. Let us know if you find any. <<

2018-02-11:
    - UO::Accessible(chr, item, range := ACCESSIBLE_DEFAULT) now checks for the item distance to chr.
      The default was always documented as 2 tiles. But due to a bug, it could be up to 18 tiles.

-- POL099 --
# For 099 and older please read core-changes.txt.
