Files
Yanis b77720fca7 [OOT/MM] Misc changes for MM (#555)
* gamedata update on load and game change

* cs index stuff

* gameeditormode and update panels

* format

* add versions

* comment MM game editor mode to avoid confusing users
2025-06-29 20:22:23 +01:00

37 lines
1.3 KiB
Python

import bpy
from typing import Optional
class GameData:
def __init__(self, game_editor_mode: Optional[str] = None):
from .data import Z64_Data
self.z64 = Z64_Data("OOT")
if game_editor_mode is not None:
self.update(game_editor_mode)
def update(self, game_editor_mode: str):
from .z64.utility import getObjectList
if game_editor_mode is not None and game_editor_mode in {"OOT", "MM"}:
self.z64.update(None, game_editor_mode, True)
# ensure `currentCutsceneIndex` is set to a correct value
if bpy.context.scene.gameEditorMode in {"OOT", "MM"}:
for scene_obj in bpy.data.objects:
scene_obj.ootAlternateSceneHeaders.currentCutsceneIndex = game_data.z64.cs_index_start
if scene_obj.type == "EMPTY" and scene_obj.ootEmptyType == "Scene":
room_obj_list = getObjectList(scene_obj.children_recursive, "EMPTY", "Room")
for room_obj in room_obj_list:
room_obj.ootAlternateRoomHeaders.currentCutsceneIndex = game_data.z64.cs_index_start
if game_editor_mode in {"OOT", "MM"} and game_editor_mode != self.z64.game:
raise ValueError(f"ERROR: Z64 game mismatch: {game_editor_mode}, {game_data.z64.game}")
game_data = GameData()