|
|
|
@@ -69,6 +69,69 @@ if _scene == null {
|
|
|
|
_scene = current_scene; }
|
|
|
|
_scene = current_scene; }
|
|
|
|
p, locator := find_and_occupy_empty_slot(*_scene.by_type._Item); p._locator = locator; register_entity(_scene, p); p.transform = create_identity_transform(); init_entity(p); return p; }
|
|
|
|
p, locator := find_and_occupy_empty_slot(*_scene.by_type._Item); p._locator = locator; register_entity(_scene, p); p.transform = create_identity_transform(); init_entity(p); return p; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
serialize_entity :: (e: *Item, builder: *String_Builder) {
|
|
|
|
|
|
|
|
print_to_builder(builder, "type: Item\n");
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.enabled: %\n", e.entity.enabled);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.flags: %\n", e.entity.flags);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.position.x: %\n", e.entity.transform.position.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.position.y: %\n", e.entity.transform.position.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.position.z: %\n", e.entity.transform.position.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.x: %\n", e.entity.transform.orientation.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.y: %\n", e.entity.transform.orientation.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.z: %\n", e.entity.transform.orientation.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.w: %\n", e.entity.transform.orientation.w);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
deserialize_entity :: (scene: *Scene, lines: [] string, e: *Item) {
|
|
|
|
|
|
|
|
for line: lines {
|
|
|
|
|
|
|
|
values := split(line, ":");
|
|
|
|
|
|
|
|
if values.count == 2 {
|
|
|
|
|
|
|
|
if trim(values[0], " ") == {
|
|
|
|
|
|
|
|
case "entity.enabled";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.enabled);
|
|
|
|
|
|
|
|
case "entity.transform.position.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.position.x);
|
|
|
|
|
|
|
|
case "entity.transform.position.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.position.y);
|
|
|
|
|
|
|
|
case "entity.transform.position.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.position.z);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.x);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.y);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.z);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.w";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.w);
|
|
|
|
|
|
|
|
case "entity.transform.scale.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.x);
|
|
|
|
|
|
|
|
case "entity.transform.scale.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.y);
|
|
|
|
|
|
|
|
case "entity.transform.scale.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.z);
|
|
|
|
|
|
|
|
case "entity.snap_offset.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.x);
|
|
|
|
|
|
|
|
case "entity.snap_offset.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.y);
|
|
|
|
|
|
|
|
case "entity.snap_offset.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.z);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
@@ -86,9 +149,6 @@ serialize_entity :: (e: *Block, builder: *String_Builder) {
|
|
|
|
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
|
|
|
|
print_to_builder(builder, "entity.grid_position.x: %\n", e.entity.grid_position.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.y: %\n", e.entity.grid_position.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.z: %\n", e.entity.grid_position.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
|
|
|
|
@@ -126,12 +186,6 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Block) {
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.y);
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.y);
|
|
|
|
case "entity.transform.scale.z";
|
|
|
|
case "entity.transform.scale.z";
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.z);
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.z);
|
|
|
|
case "entity.grid_position.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.x);
|
|
|
|
|
|
|
|
case "entity.grid_position.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.y);
|
|
|
|
|
|
|
|
case "entity.grid_position.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.z);
|
|
|
|
|
|
|
|
case "entity.snap_offset.x";
|
|
|
|
case "entity.snap_offset.x";
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.x);
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.x);
|
|
|
|
case "entity.snap_offset.y";
|
|
|
|
case "entity.snap_offset.y";
|
|
|
|
@@ -145,78 +199,6 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Block) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
serialize_entity :: (e: *Item, builder: *String_Builder) {
|
|
|
|
|
|
|
|
print_to_builder(builder, "type: Item\n");
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.enabled: %\n", e.entity.enabled);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.flags: %\n", e.entity.flags);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.position.x: %\n", e.entity.transform.position.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.position.y: %\n", e.entity.transform.position.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.position.z: %\n", e.entity.transform.position.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.x: %\n", e.entity.transform.orientation.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.y: %\n", e.entity.transform.orientation.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.z: %\n", e.entity.transform.orientation.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.orientation.w: %\n", e.entity.transform.orientation.w);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.x: %\n", e.entity.grid_position.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.y: %\n", e.entity.grid_position.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.z: %\n", e.entity.grid_position.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
deserialize_entity :: (scene: *Scene, lines: [] string, e: *Item) {
|
|
|
|
|
|
|
|
for line: lines {
|
|
|
|
|
|
|
|
values := split(line, ":");
|
|
|
|
|
|
|
|
if values.count == 2 {
|
|
|
|
|
|
|
|
if trim(values[0], " ") == {
|
|
|
|
|
|
|
|
case "entity.enabled";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.enabled);
|
|
|
|
|
|
|
|
case "entity.transform.position.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.position.x);
|
|
|
|
|
|
|
|
case "entity.transform.position.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.position.y);
|
|
|
|
|
|
|
|
case "entity.transform.position.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.position.z);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.x);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.y);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.z);
|
|
|
|
|
|
|
|
case "entity.transform.orientation.w";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.orientation.w);
|
|
|
|
|
|
|
|
case "entity.transform.scale.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.x);
|
|
|
|
|
|
|
|
case "entity.transform.scale.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.y);
|
|
|
|
|
|
|
|
case "entity.transform.scale.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.z);
|
|
|
|
|
|
|
|
case "entity.grid_position.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.x);
|
|
|
|
|
|
|
|
case "entity.grid_position.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.y);
|
|
|
|
|
|
|
|
case "entity.grid_position.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.z);
|
|
|
|
|
|
|
|
case "entity.snap_offset.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.x);
|
|
|
|
|
|
|
|
case "entity.snap_offset.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.y);
|
|
|
|
|
|
|
|
case "entity.snap_offset.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.z);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:272.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
@@ -234,16 +216,19 @@ serialize_entity :: (e: *Character, builder: *String_Builder) {
|
|
|
|
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
|
|
|
|
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
|
|
|
|
print_to_builder(builder, "entity.grid_position.x: %\n", e.entity.grid_position.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.y: %\n", e.entity.grid_position.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.grid_position.z: %\n", e.entity.grid_position.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
|
|
|
|
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
|
|
|
|
print_to_builder(builder, "look_direction.x: %\n", e.look_direction.x);
|
|
|
|
print_to_builder(builder, "look_direction.x: %\n", e.look_direction.x);
|
|
|
|
print_to_builder(builder, "look_direction.y: %\n", e.look_direction.y);
|
|
|
|
print_to_builder(builder, "look_direction.y: %\n", e.look_direction.y);
|
|
|
|
print_to_builder(builder, "look_direction.z: %\n", e.look_direction.z);
|
|
|
|
print_to_builder(builder, "look_direction.z: %\n", e.look_direction.z);
|
|
|
|
print_to_builder(builder, "yaw: %\n", e.yaw);
|
|
|
|
print_to_builder(builder, "target_look_direction.x: %\n", e.target_look_direction.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "target_look_direction.y: %\n", e.target_look_direction.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "target_look_direction.z: %\n", e.target_look_direction.z);
|
|
|
|
|
|
|
|
print_to_builder(builder, "current_yaw: %\n", e.current_yaw);
|
|
|
|
|
|
|
|
print_to_builder(builder, "current_direction.x: %\n", e.current_direction.x);
|
|
|
|
|
|
|
|
print_to_builder(builder, "current_direction.y: %\n", e.current_direction.y);
|
|
|
|
|
|
|
|
print_to_builder(builder, "current_direction.z: %\n", e.current_direction.z);
|
|
|
|
print_to_builder(builder, "last_footstep_audio: %\n", e.last_footstep_audio);
|
|
|
|
print_to_builder(builder, "last_footstep_audio: %\n", e.last_footstep_audio);
|
|
|
|
print_to_builder(builder, "animation_time: %\n", e.animation_time);
|
|
|
|
print_to_builder(builder, "animation_time: %\n", e.animation_time);
|
|
|
|
print_to_builder(builder, "jump_press_time: %\n", e.jump_press_time);
|
|
|
|
print_to_builder(builder, "jump_press_time: %\n", e.jump_press_time);
|
|
|
|
@@ -280,12 +265,6 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Character) {
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.y);
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.y);
|
|
|
|
case "entity.transform.scale.z";
|
|
|
|
case "entity.transform.scale.z";
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.z);
|
|
|
|
scan2(values[1], "%", *e.entity.transform.scale.z);
|
|
|
|
case "entity.grid_position.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.x);
|
|
|
|
|
|
|
|
case "entity.grid_position.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.y);
|
|
|
|
|
|
|
|
case "entity.grid_position.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.entity.grid_position.z);
|
|
|
|
|
|
|
|
case "entity.snap_offset.x";
|
|
|
|
case "entity.snap_offset.x";
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.x);
|
|
|
|
scan2(values[1], "%", *e.entity.snap_offset.x);
|
|
|
|
case "entity.snap_offset.y";
|
|
|
|
case "entity.snap_offset.y";
|
|
|
|
@@ -298,8 +277,20 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Character) {
|
|
|
|
scan2(values[1], "%", *e.look_direction.y);
|
|
|
|
scan2(values[1], "%", *e.look_direction.y);
|
|
|
|
case "look_direction.z";
|
|
|
|
case "look_direction.z";
|
|
|
|
scan2(values[1], "%", *e.look_direction.z);
|
|
|
|
scan2(values[1], "%", *e.look_direction.z);
|
|
|
|
case "yaw";
|
|
|
|
case "target_look_direction.x";
|
|
|
|
scan2(values[1], "%", *e.yaw);
|
|
|
|
scan2(values[1], "%", *e.target_look_direction.x);
|
|
|
|
|
|
|
|
case "target_look_direction.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.target_look_direction.y);
|
|
|
|
|
|
|
|
case "target_look_direction.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.target_look_direction.z);
|
|
|
|
|
|
|
|
case "current_yaw";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.current_yaw);
|
|
|
|
|
|
|
|
case "current_direction.x";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.current_direction.x);
|
|
|
|
|
|
|
|
case "current_direction.y";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.current_direction.y);
|
|
|
|
|
|
|
|
case "current_direction.z";
|
|
|
|
|
|
|
|
scan2(values[1], "%", *e.current_direction.z);
|
|
|
|
case "last_footstep_audio";
|
|
|
|
case "last_footstep_audio";
|
|
|
|
scan2(values[1], "%", *e.last_footstep_audio);
|
|
|
|
scan2(values[1], "%", *e.last_footstep_audio);
|
|
|
|
case "animation_time";
|
|
|
|
case "animation_time";
|
|
|
|
|