fallout2-ce/src/sfall_arrays.h

29 lines
868 B
C
Raw Normal View History

2023-04-19 16:23:33 -07:00
#ifndef SFALL_ARRAYS
#define SFALL_ARRAYS
#include "interpreter.h"
#include "object.h"
#include "sfall_script_value.h"
#include <cstdint>
namespace fallout {
#define SFALL_ARRAYFLAG_ASSOC (1) // is map
#define SFALL_ARRAYFLAG_CONSTVAL (2) // don't update value of key if the key exists in map
#define SFALL_ARRAYFLAG_RESERVED (4)
using ArrayId = unsigned int;
ArrayId CreateArray(int len, uint32_t flags);
ArrayId CreateTempArray(int len, uint32_t flags);
ProgramValue GetArrayKey(ArrayId array_id, int index);
int LenArray(ArrayId array_id);
2023-04-19 16:26:37 -07:00
ProgramValue GetArray(ArrayId array_id, const SFallScriptValue& key);
2023-04-19 16:23:33 -07:00
void SetArray(ArrayId array_id, const SFallScriptValue& key, const SFallScriptValue& val, bool allowUnset);
2023-04-19 16:46:24 -07:00
void FreeArray(ArrayId array_id);
2023-04-19 16:53:49 -07:00
void FixArray(ArrayId id);
2023-04-19 16:46:24 -07:00
void DeleteAllTempArrays();
2023-04-19 23:34:53 -07:00
void sfallArraysReset();
2023-04-19 16:23:33 -07:00
}
#endif /* SFALL_ARRAYS */