mirror of
https://git.xeondev.com/LR/S.git
synced 2026-02-04 06:55:06 +01:00
chore(Assets): add TeleportValidationDataTable
This commit is contained in:
2047
assets/configs/MapTeleportValidationDataTable.json
Normal file
2047
assets/configs/MapTeleportValidationDataTable.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,7 @@ level_config_table: StringHashMap(configs.LevelConfig),
|
||||
level_map_mark_groups: StringHashMap([]const configs.ClientSingleMapMarkData),
|
||||
// instId-to-data mapping
|
||||
map_mark_table: StringHashMap(*const configs.ClientSingleMapMarkData),
|
||||
teleport_validation_table: configs.TeleportValidationDataTable,
|
||||
|
||||
pub const IdGroup = enum {
|
||||
char_id,
|
||||
@@ -84,6 +85,13 @@ pub fn load(io: Io, gpa: Allocator) !Assets {
|
||||
|
||||
const map_mark_table = try buildMapMarkTable(&level_map_mark_groups, arena.allocator());
|
||||
|
||||
const teleport_validation_table = try configs.loadJsonConfig(
|
||||
configs.TeleportValidationDataTable,
|
||||
io,
|
||||
arena.allocator(),
|
||||
"MapTeleportValidationDataTable.json",
|
||||
);
|
||||
|
||||
return .{
|
||||
.arena = arena,
|
||||
.owned_tables = owned_tables,
|
||||
@@ -94,6 +102,7 @@ pub fn load(io: Io, gpa: Allocator) !Assets {
|
||||
.level_config_table = level_config_table,
|
||||
.level_map_mark_groups = level_map_mark_groups,
|
||||
.map_mark_table = map_mark_table,
|
||||
.teleport_validation_table = teleport_validation_table,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ const json = std.json;
|
||||
pub const CommonSkillConfig = @import("configs/CommonSkillConfig.zig");
|
||||
pub const LevelConfig = @import("configs/LevelConfig.zig");
|
||||
pub const ClientSingleMapMarkData = @import("configs/ClientSingleMapMarkData.zig");
|
||||
pub const TeleportValidationDataTable = @import("configs/TeleportValidationDataTable.zig");
|
||||
|
||||
const Io = std.Io;
|
||||
const Allocator = std.mem.Allocator;
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
const ClientSingleMapMarkData = @This();
|
||||
|
||||
basicData: MapMarkBasicData,
|
||||
detailedData: ?MapMarkDetailedData = null,
|
||||
|
||||
pub const MapMarkBasicData = struct {
|
||||
templateId: []const u8,
|
||||
@@ -9,3 +12,24 @@ pub const MapMarkBasicData = struct {
|
||||
z: f32,
|
||||
},
|
||||
};
|
||||
|
||||
pub const MapMarkDetailedData = struct {
|
||||
logicIdGlobal: ?u64 = null,
|
||||
teleportValidationId: ?[]const u8 = null,
|
||||
|
||||
pub const TeleportValidationData = struct {
|
||||
logicIdGlobal: u64,
|
||||
teleportValidationId: []const u8,
|
||||
};
|
||||
};
|
||||
|
||||
pub fn teleportValidationData(
|
||||
csmmd: *const ClientSingleMapMarkData,
|
||||
) ?MapMarkDetailedData.TeleportValidationData {
|
||||
const details = csmmd.detailedData orelse return null;
|
||||
|
||||
return .{
|
||||
.logicIdGlobal = details.logicIdGlobal orelse return null,
|
||||
.teleportValidationId = details.teleportValidationId orelse return null,
|
||||
};
|
||||
}
|
||||
|
||||
10
gamesv/src/Assets/configs/TeleportValidationDataTable.zig
Normal file
10
gamesv/src/Assets/configs/TeleportValidationDataTable.zig
Normal file
@@ -0,0 +1,10 @@
|
||||
const std = @import("std");
|
||||
|
||||
teleportValidationDatas: std.json.ArrayHashMap(TeleportValidationData),
|
||||
|
||||
pub const TeleportValidationData = struct {
|
||||
id: []const u8,
|
||||
teleportReason: i32,
|
||||
sceneId: []const u8,
|
||||
position: struct { x: f32, y: f32, z: f32 },
|
||||
};
|
||||
Reference in New Issue
Block a user