From ef5bc6ce1b72a48fa374d113086f6431486c26c7 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 9 Jun 2022 01:17:56 +0000 Subject: [PATCH] fix blades data cloning on c++ --- projects/iso-rpg-engine/source/data/blades/CreatureData.hx | 6 +++++- projects/iso-rpg-engine/source/data/blades/FloorData.hx | 6 +++++- projects/iso-rpg-engine/source/data/blades/ItemData.hx | 6 +++++- projects/iso-rpg-engine/source/data/blades/ScenData.hx | 5 +++-- projects/iso-rpg-engine/source/data/blades/TerrainData.hx | 6 +++++- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/projects/iso-rpg-engine/source/data/blades/CreatureData.hx b/projects/iso-rpg-engine/source/data/blades/CreatureData.hx index 37949088..de0e3dff 100644 --- a/projects/iso-rpg-engine/source/data/blades/CreatureData.hx +++ b/projects/iso-rpg-engine/source/data/blades/CreatureData.hx @@ -121,7 +121,11 @@ class CreatureData { public function clone():CreatureData { var cd = new CreatureData(); for (field in CreatureData.getInstanceFields()) { - cd.setField(field, this.field(field)); + try { + cd.setField(field, this.field(field)); + } catch (e) { + // can't set functions in c++ + } } return cd; } diff --git a/projects/iso-rpg-engine/source/data/blades/FloorData.hx b/projects/iso-rpg-engine/source/data/blades/FloorData.hx index 4164f02f..9b7f7131 100644 --- a/projects/iso-rpg-engine/source/data/blades/FloorData.hx +++ b/projects/iso-rpg-engine/source/data/blades/FloorData.hx @@ -34,7 +34,11 @@ class FloorData { public function clone():FloorData { var fd = new FloorData(); for (field in FloorData.getInstanceFields()) { - fd.setField(field, this.field(field)); + try { + fd.setField(field, this.field(field)); + } catch (e) { + // can't set functions in c++ + } } return fd; } diff --git a/projects/iso-rpg-engine/source/data/blades/ItemData.hx b/projects/iso-rpg-engine/source/data/blades/ItemData.hx index 78fef443..2576dd8b 100644 --- a/projects/iso-rpg-engine/source/data/blades/ItemData.hx +++ b/projects/iso-rpg-engine/source/data/blades/ItemData.hx @@ -37,7 +37,11 @@ class ItemData { public function clone():ItemData { var id = new ItemData(); for (field in ItemData.getInstanceFields()) { - id.setField(field, this.field(field)); + try { + id.setField(field, this.field(field)); + } catch (e) { + // can't set functions in c++ + } } return id; } diff --git a/projects/iso-rpg-engine/source/data/blades/ScenData.hx b/projects/iso-rpg-engine/source/data/blades/ScenData.hx index d3df1c66..a272c0e8 100644 --- a/projects/iso-rpg-engine/source/data/blades/ScenData.hx +++ b/projects/iso-rpg-engine/source/data/blades/ScenData.hx @@ -255,9 +255,10 @@ class ScenData { try { interp.execute(parser.parseString(line)); - } catch (e) { + } + catch (e) { trace('line `$line` failed because $e'); - } + } } } diff --git a/projects/iso-rpg-engine/source/data/blades/TerrainData.hx b/projects/iso-rpg-engine/source/data/blades/TerrainData.hx index 2e77dc39..cc64b531 100644 --- a/projects/iso-rpg-engine/source/data/blades/TerrainData.hx +++ b/projects/iso-rpg-engine/source/data/blades/TerrainData.hx @@ -66,7 +66,11 @@ class TerrainData { public function clone():TerrainData { var td = new TerrainData(); for (field in TerrainData.getInstanceFields()) { - td.setField(field, this.field(field)); + try { + td.setField(field, this.field(field)); + } catch (e) { + // can't set functions in c++ + } } return td; }