Skip to content

arenadata

Justin Schwartz edited this page Jun 27, 2020 · 4 revisions

arenadata

  • ACE Directive*

Defines the per-arena-data structure for the module; starts a structure block. End the block with $#endarenadata

Inside the block, define structure fields normally.

Only one arena data structure may be defined in a module, multiple arenadata directives just add extra members to the same struct.

To access per-player-data inside of a function, use the $usearenadata() expansion function.

Valid Syntax

  • $#arenadata
  • $#arenadata type

Parameters

type

(Optional)

static or dynamic. by default, static (except as below:)

if arena data is already defined (through use of dependencies or $lock included), the default is to not change whether it is static or dynamic.

dynamic arena data uses a mechanism to only allocate the full size of the struct for the arena when the module is attached. the resulting module will be somewhat more complicated.

this method is especially recommended for modules with very large arena data structs, because asss will limited the total number of bytes used for all per-arena-data (using the undocumented global setting on load General:PerArenaBytes, with a default of 10000.) ACE avoids this problem using a wrapper struct.

Clone this wiki locally