Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
P
puzzle-editor
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rarnu
puzzle-editor
Commits
22bbfa99
Commit
22bbfa99
authored
Nov 26, 2024
by
rarnu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 修复override引起的内存问题
parent
44d4a1ce
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
80 additions
and
67 deletions
+80
-67
Util/untCardJson.pas
Util/untCardJson.pas
+39
-31
Util/untScriptGenerator.pas
Util/untScriptGenerator.pas
+39
-35
puzzle2.dproj
puzzle2.dproj
+2
-1
puzzle2.res
puzzle2.res
+0
-0
No files found.
Util/untCardJson.pas
View file @
22bbfa99
...
@@ -44,6 +44,7 @@ var
...
@@ -44,6 +44,7 @@ var
json
:
TJSONObject
;
json
:
TJSONObject
;
arr
:
TJSONArray
;
arr
:
TJSONArray
;
jsub
:
TJSONObject
;
jsub
:
TJSONObject
;
co
:
ICardOverride
;
i
:
Integer
;
i
:
Integer
;
begin
begin
if
ACard
=
nil
then
Exit
(
TJSONNull
.
Create
);
if
ACard
=
nil
then
Exit
(
TJSONNull
.
Create
);
...
@@ -75,20 +76,22 @@ begin
...
@@ -75,20 +76,22 @@ begin
json
.
AddPair
(
'workAs'
,
CardWorkAsToStr
(
ACard
.
GetWorkAs
));
json
.
AddPair
(
'workAs'
,
CardWorkAsToStr
(
ACard
.
GetWorkAs
));
jsub
:=
TJSONObject
.
Create
;
jsub
:=
TJSONObject
.
Create
;
jsub
.
AddPair
(
'useLevel'
,
ACard
.
GetOverride
.
GetUseLevel
);
co
:=
ACard
.
GetOverride
;
jsub
.
AddPair
(
'useRank'
,
ACard
.
GetOverride
.
GetUseRank
);
if
co
<>
nil
then
begin
jsub
.
AddPair
(
'useAttr'
,
ACard
.
GetOverride
.
GetUseAttr
);
jsub
.
AddPair
(
'useLevel'
,
co
.
GetUseLevel
);
jsub
.
AddPair
(
'useRace'
,
ACard
.
GetOverride
.
GetUseRace
);
jsub
.
AddPair
(
'useRank'
,
co
.
GetUseRank
);
jsub
.
AddPair
(
'useAtk'
,
ACard
.
GetOverride
.
GetUseAtk
);
jsub
.
AddPair
(
'useAttr'
,
co
.
GetUseAttr
);
jsub
.
AddPair
(
'useDef'
,
ACard
.
GetOverride
.
GetUseDef
);
jsub
.
AddPair
(
'useRace'
,
co
.
GetUseRace
);
jsub
.
AddPair
(
'level'
,
ACard
.
GetOverride
.
GetLevel
);
jsub
.
AddPair
(
'useAtk'
,
co
.
GetUseAtk
);
jsub
.
AddPair
(
'rank'
,
ACard
.
GetOverride
.
GetRank
);
jsub
.
AddPair
(
'useDef'
,
co
.
GetUseDef
);
jsub
.
AddPair
(
'attr'
,
ACard
.
GetOverride
.
GetAttr
);
jsub
.
AddPair
(
'level'
,
co
.
GetLevel
);
jsub
.
AddPair
(
'race'
,
ACard
.
GetOverride
.
GetRace
);
jsub
.
AddPair
(
'rank'
,
co
.
GetRank
);
jsub
.
AddPair
(
'atk'
,
ACard
.
GetOverride
.
GetAtk
);
jsub
.
AddPair
(
'attr'
,
co
.
GetAttr
);
jsub
.
AddPair
(
'def'
,
ACard
.
GetOverride
.
GetDef
);
jsub
.
AddPair
(
'race'
,
co
.
GetRace
);
jsub
.
AddPair
(
'atk'
,
co
.
GetAtk
);
json
.
AddPair
(
'override'
,
jsub
);
jsub
.
AddPair
(
'def'
,
co
.
GetDef
);
json
.
AddPair
(
'override'
,
jsub
);
end
;
Exit
(
json
);
Exit
(
json
);
end
;
end
;
...
@@ -139,23 +142,28 @@ begin
...
@@ -139,23 +142,28 @@ begin
c
.
SetWorkAs
(
StrToCardWorkAs
(
jobj
.
GetValue
<
String
>(
'workAs'
)));
c
.
SetWorkAs
(
StrToCardWorkAs
(
jobj
.
GetValue
<
String
>(
'workAs'
)));
jsub
:=
jobj
.
GetValue
<
TJSONObject
>(
'override'
);
try
jsub
:=
jobj
.
GetValue
<
TJSONObject
>(
'override'
);
co
:=
TCardOverride
.
Create
;
except
co
.
SetUseLevel
(
jsub
.
GetValue
<
Boolean
>(
'useLevel'
));
jsub
:=
nil
;
co
.
SetUseRank
(
jsub
.
GetValue
<
Boolean
>(
'useRank'
));
end
;
co
.
SetUseAttr
(
jsub
.
GetValue
<
Boolean
>(
'useAttr'
));
co
.
SetUseRace
(
jsub
.
GetValue
<
Boolean
>(
'useRace'
));
if
jsub
<>
nil
then
begin
co
.
SetUseAtk
(
jsub
.
GetValue
<
Boolean
>(
'useAtk'
));
co
:=
TCardOverride
.
Create
;
co
.
SetUseDef
(
jsub
.
GetValue
<
Boolean
>(
'useDef'
));
co
.
SetUseLevel
(
jsub
.
GetValue
<
Boolean
>(
'useLevel'
));
co
.
SetLevel
(
jsub
.
GetValue
<
Integer
>(
'level'
));
co
.
SetUseRank
(
jsub
.
GetValue
<
Boolean
>(
'useRank'
));
co
.
SetRank
(
jsub
.
GetValue
<
Integer
>(
'rank'
));
co
.
SetUseAttr
(
jsub
.
GetValue
<
Boolean
>(
'useAttr'
));
co
.
SetAttr
(
jsub
.
GetValue
<
Int64
>(
'attr'
));
co
.
SetUseRace
(
jsub
.
GetValue
<
Boolean
>(
'useRace'
));
co
.
SetRace
(
jsub
.
GetValue
<
Int64
>(
'race'
));
co
.
SetUseAtk
(
jsub
.
GetValue
<
Boolean
>(
'useAtk'
));
co
.
SetAtk
(
jsub
.
GetValue
<
Integer
>(
'atk'
));
co
.
SetUseDef
(
jsub
.
GetValue
<
Boolean
>(
'useDef'
));
co
.
SetDef
(
jsub
.
GetValue
<
Integer
>(
'def'
));
co
.
SetLevel
(
jsub
.
GetValue
<
Integer
>(
'level'
));
co
.
SetRank
(
jsub
.
GetValue
<
Integer
>(
'rank'
));
c
.
SetOverride
(
co
);
co
.
SetAttr
(
jsub
.
GetValue
<
Int64
>(
'attr'
));
co
.
SetRace
(
jsub
.
GetValue
<
Int64
>(
'race'
));
co
.
SetAtk
(
jsub
.
GetValue
<
Integer
>(
'atk'
));
co
.
SetDef
(
jsub
.
GetValue
<
Integer
>(
'def'
));
c
.
SetOverride
(
co
);
end
;
Exit
(
c
);
Exit
(
c
);
end
;
end
;
...
...
Util/untScriptGenerator.pas
View file @
22bbfa99
...
@@ -462,44 +462,48 @@ end;
...
@@ -462,44 +462,48 @@ end;
class
function
TScriptGenerator
.
GenerateOverride
(
ACard
:
ICard
):
string
;
class
function
TScriptGenerator
.
GenerateOverride
(
ACard
:
ICard
):
string
;
var
var
list
:
TStringList
;
list
:
TStringList
;
co
:
ICardOverride
;
begin
begin
list
:=
TStringList
.
Create
;
list
:=
TStringList
.
Create
;
if
ACard
.
GetOverride
.
GetUseLevel
then
begin
co
:=
ACard
.
GetOverride
;
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_LEVEL,%d)'
,
[
if
co
<>
nil
then
begin
CardToVarName
(
ACard
),
if
ACard
.
GetOverride
.
GetUseLevel
then
begin
ACard
.
GetOverride
.
GetLevel
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_LEVEL,%d)'
,
[
]));
CardToVarName
(
ACard
),
end
;
ACard
.
GetOverride
.
GetLevel
if
ACard
.
GetOverride
.
GetUseRank
then
begin
]));
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_RANK,%d)'
,
[
end
;
CardToVarName
(
ACard
),
if
ACard
.
GetOverride
.
GetUseRank
then
begin
ACard
.
GetOverride
.
GetRank
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_RANK,%d)'
,
[
]));
CardToVarName
(
ACard
),
end
;
ACard
.
GetOverride
.
GetRank
if
ACard
.
GetOverride
.
GetUseAttr
then
begin
]));
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_ATTRIBUTE,%s)'
,
[
end
;
CardToVarName
(
ACard
),
if
ACard
.
GetOverride
.
GetUseAttr
then
begin
CardAttributeToStr
(
ACard
.
GetOverride
.
GetAttr
)
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_ATTRIBUTE,%s)'
,
[
]));
CardToVarName
(
ACard
),
end
;
CardAttributeToStr
(
ACard
.
GetOverride
.
GetAttr
)
if
ACard
.
GetOverride
.
GetUseRace
then
begin
]));
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_RACE,%s)'
,
[
end
;
CardToVarName
(
ACard
),
if
ACard
.
GetOverride
.
GetUseRace
then
begin
CardRaceToStr
(
ACard
.
GetOverride
.
GetRace
)
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_RACE,%s)'
,
[
]));
CardToVarName
(
ACard
),
end
;
CardRaceToStr
(
ACard
.
GetOverride
.
GetRace
)
if
ACard
.
GetOverride
.
GetUseAtk
then
begin
]));
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_ATTACK,%d)'
,
[
end
;
CardToVarName
(
ACard
),
if
ACard
.
GetOverride
.
GetUseAtk
then
begin
ACard
.
GetOverride
.
GetAtk
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_ATTACK,%d)'
,
[
]));
CardToVarName
(
ACard
),
end
;
ACard
.
GetOverride
.
GetAtk
if
ACard
.
GetOverride
.
GetUseDef
then
begin
]));
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_DEFENSE,%d)'
,
[
end
;
CardToVarName
(
ACard
),
if
ACard
.
GetOverride
.
GetUseDef
then
begin
ACard
.
GetOverride
.
GetDef
list
.
Add
(
Format
(
'Card.AssumeProperty(%s,ASSUME_DEFENSE,%d)'
,
[
]));
CardToVarName
(
ACard
),
ACard
.
GetOverride
.
GetDef
]));
end
;
end
;
end
;
Result
:=
list
.
Text
;
Result
:=
list
.
Text
;
...
...
puzzle2.dproj
View file @
22bbfa99
...
@@ -5,10 +5,11 @@
...
@@ -5,10 +5,11 @@
<FrameworkType>FMX</FrameworkType>
<FrameworkType>FMX</FrameworkType>
<Base>True</Base>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Config Condition="'$(Config)'==''">Debug</Config>
<Platform Condition="'$(Platform)'==''">
OSXARM
64</Platform>
<Platform Condition="'$(Platform)'==''">
Win
64</Platform>
<TargetedPlatforms>163842</TargetedPlatforms>
<TargetedPlatforms>163842</TargetedPlatforms>
<AppType>Application</AppType>
<AppType>Application</AppType>
<MainSource>puzzle2.dpr</MainSource>
<MainSource>puzzle2.dpr</MainSource>
<ProjectName Condition="'$(ProjectName)'==''">puzzle2</ProjectName>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
<Base>true</Base>
...
...
puzzle2.res
View file @
22bbfa99
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment