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),
|
level_map_mark_groups: StringHashMap([]const configs.ClientSingleMapMarkData),
|
||||||
// instId-to-data mapping
|
// instId-to-data mapping
|
||||||
map_mark_table: StringHashMap(*const configs.ClientSingleMapMarkData),
|
map_mark_table: StringHashMap(*const configs.ClientSingleMapMarkData),
|
||||||
|
teleport_validation_table: configs.TeleportValidationDataTable,
|
||||||
|
|
||||||
pub const IdGroup = enum {
|
pub const IdGroup = enum {
|
||||||
char_id,
|
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 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 .{
|
return .{
|
||||||
.arena = arena,
|
.arena = arena,
|
||||||
.owned_tables = owned_tables,
|
.owned_tables = owned_tables,
|
||||||
@@ -94,6 +102,7 @@ pub fn load(io: Io, gpa: Allocator) !Assets {
|
|||||||
.level_config_table = level_config_table,
|
.level_config_table = level_config_table,
|
||||||
.level_map_mark_groups = level_map_mark_groups,
|
.level_map_mark_groups = level_map_mark_groups,
|
||||||
.map_mark_table = map_mark_table,
|
.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 CommonSkillConfig = @import("configs/CommonSkillConfig.zig");
|
||||||
pub const LevelConfig = @import("configs/LevelConfig.zig");
|
pub const LevelConfig = @import("configs/LevelConfig.zig");
|
||||||
pub const ClientSingleMapMarkData = @import("configs/ClientSingleMapMarkData.zig");
|
pub const ClientSingleMapMarkData = @import("configs/ClientSingleMapMarkData.zig");
|
||||||
|
pub const TeleportValidationDataTable = @import("configs/TeleportValidationDataTable.zig");
|
||||||
|
|
||||||
const Io = std.Io;
|
const Io = std.Io;
|
||||||
const Allocator = std.mem.Allocator;
|
const Allocator = std.mem.Allocator;
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
|
const ClientSingleMapMarkData = @This();
|
||||||
|
|
||||||
basicData: MapMarkBasicData,
|
basicData: MapMarkBasicData,
|
||||||
|
detailedData: ?MapMarkDetailedData = null,
|
||||||
|
|
||||||
pub const MapMarkBasicData = struct {
|
pub const MapMarkBasicData = struct {
|
||||||
templateId: []const u8,
|
templateId: []const u8,
|
||||||
@@ -9,3 +12,24 @@ pub const MapMarkBasicData = struct {
|
|||||||
z: f32,
|
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