Sly 1:WS

From SlyMods
Jump to navigation Jump to search
Data Structure
GameSly Cooper and the Thievius Raccoonus
Official NameYes

WS (World State) is a data structure in Sly Cooper and the Thievius Raccoonus. It stores an array of Level States, one for each level in the world.

Structure[edit | edit source]

The WS struct is declared as follows:
struct WS {
    struct LS als[9]; /* Level states array */
    dword ckey; /* Count of keys collected on world */
    dword cvault; /* Count of vaults opened on world */
    dword ctimed; /* Count of MTS completed on world */
    float dt; /* Time spent in world */
    enum FWS fws; /* World state flags */

Level states array[edit | edit source]

Each WS stores an array of 9 LS structs, called als, even if the world has fewer than 9 levels (such as Worlds 0 and 5). In the case of an unused level, the corresponding level state is blank and ignored.

The level states are always aligned in the als array so the indices are as follows:

  • als[0]: Intro level
  • als[1]: Hub level
  • als[2] - als[7]: Generic levels
  • als[8]: Boss fight

Because World 5 has no hub level and fewer than 6 generic levels, it is the only gameworld with gaps between levels in the als array.

World state flags[edit | edit source]

The current state of the world is defined by the FWS enum, which has the following possible values:

FWS_Visited 0x1
FWS_Lock_0 0x2
FWS_Lock_1 0x4
FWS_Lock_2 0x8
FWS_Lock_3 0x10
GRFWS_Lock_All 0x1e