Skip to content

Commit 7c77225

Browse files
committed
feat: add instance as symbol value
1 parent 75d919f commit 7c77225

3 files changed

Lines changed: 13 additions & 1 deletion

File tree

src/zenkit/_core.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
DLL: Final[CDLL] = CDLL(str(_PATH))
5555

5656
PathOrFileLike = Union[str, PathLike, "Read", bytes, bytearray, "VfsNode"]
57+
DaedalusSymbolValue = Union[float, int, str, "DaedalusInstance", None]
5758

5859

5960
class GameVersion(IntEnum):

src/zenkit/daedalus/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,12 @@
4444
DaedalusInstanceType.SOUND_EFFECT: SoundEffectInstance,
4545
DaedalusInstanceType.SOUND_SYSTEM: SoundSystemInstance,
4646
}
47+
48+
_CLASS_TYPES = {
49+
"C_NPC": DaedalusInstanceType.NPC,
50+
"C_MISSION": DaedalusInstanceType.MISSION,
51+
"C_ITEM": DaedalusInstanceType.ITEM,
52+
"C_INFO": DaedalusInstanceType.INFO,
53+
"C_ITEMREACT": DaedalusInstanceType.ITEM_REACT,
54+
"C_FOCUS": DaedalusInstanceType.FOCUS,
55+
}

src/zenkit/daedalus_script.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@
2020
from typing import ClassVar
2121

2222
from zenkit import _native
23+
from zenkit.daedalus import _CLASS_TYPES
2324
from zenkit._core import DLL
2425
from zenkit._core import PathOrFileLike
26+
from zenkit._core import DaedalusSymbolValue
2527
from zenkit._native import ZkPointer
2628
from zenkit._native import ZkString
2729
from zenkit.daedalus.base import DaedalusInstance
@@ -204,7 +206,7 @@ def return_type(self) -> DaedalusDataType:
204206
return DaedalusDataType(DLL.ZkDaedalusSymbol_getReturnType(self._handle))
205207

206208
@property
207-
def value(self) -> float | int | str | None:
209+
def value(self) -> DaedalusSymbolValue:
208210
if self.type == DaedalusDataType.FLOAT:
209211
return self.get_float()
210212
if self.type == DaedalusDataType.INT:

0 commit comments

Comments
 (0)