Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
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
REIKAI
ygopro
Commits
f0ee4725
Commit
f0ee4725
authored
Oct 25, 2015
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge
https://github.com/Fluorohydride/ygopro
into server
parents
c02ad0ff
a23e3c96
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
296 additions
and
172 deletions
+296
-172
README.md
README.md
+45
-0
gframe/client_field.cpp
gframe/client_field.cpp
+111
-121
gframe/deck_con.cpp
gframe/deck_con.cpp
+12
-4
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+2
-2
gframe/duelclient.cpp
gframe/duelclient.cpp
+14
-12
gframe/event_handler.cpp
gframe/event_handler.cpp
+98
-20
gframe/game.cpp
gframe/game.cpp
+3
-3
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+4
-3
ocgcore
ocgcore
+1
-1
script
script
+1
-1
strings.conf
strings.conf
+5
-5
No files found.
README.md
0 → 100644
View file @
f0ee4725
## ygopro
A script engine for "yu-gi-oh!" and sample gui
[
中文说明
](
https://github.com/Fluorohydride/ygopro/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E
)
###Keys:
*
ESC: Minimize the window.
*
A: Holding down this button will let the system stop at every timing.
*
S: Holding down this button will let the system skip every timing.
*
R: Fix the font error.
*
F1~F4: Show the cards in your grave, banished zone, extra deck, xyz materials.
*
F5~F8: Show the cards in your opponent's grave, banished zone, extra deck, xyz materials.
###Color:
*
Background:
*
White = your card, Grey = your opponent's card
*
Text:
*
Black = default, Blue = the owner of the xyz material is different from its controller
###Sequence:
*
Monster Zone: 1~5, starting from the left hand side.
*
Spell & Trap Zone: 1~5, starting from the left hand side.
*
Field Zone: 6
*
Pendulum Zone: 7~8, starting from the left hand side.
*
The others: 1~n, starting from the bottom.
###Deck edit page:
*
All numeric textboxs: They support >, =,
<
,
>
=, <= signs.
*
Card name: Search card names and texts by default, and $foo will only search foo in card names.
### Command-line options:
*
-j: Join the host in system.conf file.
*
-d: Enter the deck edit page.
*
-r: Enter the replay mode page.
*
-s: Enter the single mode page.
*
-efoo: Load foo as the extra database.
### Directories:
*
pics: .jpg card images(177
*
254).
*
pics
\t
humbnail: .jpg thumbnail images(44
*
64).
*
script: .lua script files.
*
textures: Other image files.
*
deck: .ydk deck files.
*
replay: .yrp replay files.
*
expansions:
*
.cdb will be loaded as extra databases.
gframe/client_field.cpp
View file @
f0ee4725
...
...
@@ -349,76 +349,66 @@ void ClientField::ClearChainSelect() {
remove_act
=
false
;
extra_act
=
false
;
}
// needs to be synchronized with EGET_SCROLL_BAR_CHANGED
void
ClientField
::
ShowSelectCard
(
bool
buttonok
,
bool
chain
)
{
if
(
selectable_cards
.
size
()
<=
5
)
{
int
startpos
=
30
+
125
*
(
5
-
selectable_cards
.
size
())
/
2
;
for
(
size_t
i
=
0
;
i
<
selectable_cards
.
size
();
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
if
(
chain
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
chain_code
));
int
startpos
;
if
(
selectable_cards
.
size
()
<=
5
)
startpos
=
30
+
125
*
(
5
-
selectable_cards
.
size
())
/
2
;
else
startpos
=
30
;
for
(
size_t
i
=
0
;
i
<
min
(
selectable_cards
.
size
(),
5
);
++
i
)
{
mainGame
->
stCardPos
[
i
]
->
enableOverrideColor
(
false
);
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
if
(
chain
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
chain_code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
overlayTarget
->
location
,
selectable_cards
[
i
]
->
overlayTarget
->
sequence
),
selectable_cards
[
i
]
->
overlayTarget
->
sequence
+
1
,
selectable_cards
[
i
]
->
sequence
+
1
);
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
selectable_cards
[
i
]
->
owner
!=
selectable_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
selectable_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
selectable_cards
[
i
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
sort_list
[
i
])
{
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
mainGame
->
stCardPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
10
+
i
*
125
,
30
,
startpos
+
109
+
i
*
125
,
50
));
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
}
else
{
if
(
sort_list
[
i
])
{
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
mainGame
->
stCardPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
30
,
startpos
+
120
+
i
*
125
,
50
));
}
if
(
selectable_cards
.
size
()
<=
5
)
{
for
(
int
i
=
selectable_cards
.
size
();
i
<
5
;
++
i
)
{
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
false
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
false
);
}
mainGame
->
scrCardList
->
setPos
(
0
);
mainGame
->
scrCardList
->
setVisible
(
false
);
}
else
{
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
if
(
chain
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
chain_code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
if
(
selectable_cards
[
i
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
sort_list
[
i
])
{
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
mainGame
->
stCardPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
40
+
i
*
125
,
30
,
139
+
i
*
125
,
50
));
}
}
else
{
mainGame
->
scrCardList
->
setVisible
(
true
);
mainGame
->
scrCardList
->
setMin
(
0
);
mainGame
->
scrCardList
->
setMax
((
selectable_cards
.
size
()
-
5
)
*
10
+
9
);
...
...
@@ -430,49 +420,46 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
mainGame
->
PopupElement
(
mainGame
->
wCardSelect
);
}
void
ClientField
::
ShowChainCard
()
{
if
(
selectable_cards
.
size
()
<=
5
)
{
int
startpos
=
30
+
125
*
(
5
-
selectable_cards
.
size
())
/
2
;
for
(
size_t
i
=
0
;
i
<
selectable_cards
.
size
();
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
int
startpos
;
if
(
selectable_cards
.
size
()
<=
5
)
startpos
=
30
+
125
*
(
5
-
selectable_cards
.
size
())
/
2
;
else
startpos
=
30
;
for
(
size_t
i
=
0
;
i
<
min
(
selectable_cards
.
size
(),
5
);
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
selectable_cards
[
i
]
->
owner
!=
selectable_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
selectable_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
selectable_cards
[
i
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
mainGame
->
stCardPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
10
+
i
*
125
,
30
,
startpos
+
109
+
i
*
125
,
50
));
}
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
mainGame
->
stCardPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
30
,
startpos
+
120
+
i
*
125
,
50
));
}
if
(
selectable_cards
.
size
()
<=
5
)
{
for
(
int
i
=
selectable_cards
.
size
();
i
<
5
;
++
i
)
{
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
false
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
false
);
}
mainGame
->
scrCardList
->
setPos
(
0
);
mainGame
->
scrCardList
->
setVisible
(
false
);
}
else
{
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
if
(
selectable_cards
[
i
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
mainGame
->
stCardPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
40
+
i
*
125
,
30
,
139
+
i
*
125
,
50
));
}
}
else
{
mainGame
->
scrCardList
->
setVisible
(
true
);
mainGame
->
scrCardList
->
setMin
(
0
);
mainGame
->
scrCardList
->
setMax
((
selectable_cards
.
size
()
-
5
)
*
10
+
9
);
...
...
@@ -484,49 +471,52 @@ void ClientField::ShowChainCard() {
mainGame
->
PopupElement
(
mainGame
->
wCardSelect
);
}
void
ClientField
::
ShowLocationCard
()
{
if
(
display_cards
.
size
()
<=
5
)
{
int
startpos
=
30
+
125
*
(
5
-
display_cards
.
size
())
/
2
;
for
(
size_t
i
=
0
;
i
<
display_cards
.
size
();
++
i
)
{
if
(
display_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardDisplay
[
i
],
display_cards
[
i
]
->
code
));
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
true
);
int
startpos
;
if
(
display_cards
.
size
()
<=
5
)
startpos
=
30
+
125
*
(
5
-
display_cards
.
size
())
/
2
;
else
startpos
=
30
;
for
(
size_t
i
=
0
;
i
<
min
(
display_cards
.
size
(),
5
);
++
i
)
{
mainGame
->
stDisplayPos
[
i
]
->
enableOverrideColor
(
false
);
if
(
display_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardDisplay
[
i
],
display_cards
[
i
]
->
code
));
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
true
);
if
(
display_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
display_cards
[
i
]
->
overlayTarget
->
location
,
display_cards
[
i
]
->
overlayTarget
->
sequence
),
display_cards
[
i
]
->
overlayTarget
->
sequence
+
1
,
display_cards
[
i
]
->
sequence
+
1
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
display_cards
[
i
]
->
location
,
display_cards
[
i
]
->
sequence
),
display_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stDisplayPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stDisplayPos
[
i
]
->
setVisible
(
true
);
mainGame
->
stDisplayPos
[
i
]
->
setText
(
formatBuffer
);
if
(
display_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
display_cards
[
i
]
->
owner
!=
display_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
display_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
display_cards
[
i
]
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
mainGame
->
stDisplayPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
10
+
i
*
125
,
30
,
startpos
+
109
+
i
*
125
,
50
));
}
mainGame
->
stDisplayPos
[
i
]
->
setVisible
(
true
);
mainGame
->
stDisplayPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
30
,
startpos
+
120
+
i
*
125
,
50
));
}
if
(
display_cards
.
size
()
<=
5
)
{
for
(
int
i
=
display_cards
.
size
();
i
<
5
;
++
i
)
{
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
false
);
mainGame
->
stDisplayPos
[
i
]
->
setVisible
(
false
);
}
mainGame
->
scrDisplayList
->
setPos
(
0
);
mainGame
->
scrDisplayList
->
setVisible
(
false
);
}
else
{
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
if
(
display_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardDisplay
[
i
],
display_cards
[
i
]
->
code
));
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
true
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
display_cards
[
i
]
->
location
,
display_cards
[
i
]
->
sequence
),
display_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stDisplayPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stDisplayPos
[
i
]
->
setVisible
(
true
);
if
(
display_cards
[
i
]
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
mainGame
->
stDisplayPos
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
40
+
i
*
125
,
30
,
139
+
i
*
125
,
50
));
}
}
else
{
mainGame
->
scrDisplayList
->
setVisible
(
true
);
mainGame
->
scrDisplayList
->
setMin
(
0
);
mainGame
->
scrDisplayList
->
setMax
((
display_cards
.
size
()
-
5
)
*
10
+
9
);
...
...
gframe/deck_con.cpp
View file @
f0ee4725
...
...
@@ -336,6 +336,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
dragx
=
event
.
MouseInput
.
X
;
dragy
=
event
.
MouseInput
.
Y
;
draging_pointer
=
dataManager
.
GetCodePointer
(
hovered_code
);
if
(
draging_pointer
==
dataManager
.
_datas
.
end
())
break
;
unsigned
int
limitcode
=
draging_pointer
->
second
.
alias
?
draging_pointer
->
second
.
alias
:
draging_pointer
->
first
;
if
(
hovered_pos
==
4
)
{
int
limit
=
3
;
...
...
@@ -438,6 +440,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
break
;
draging_pointer
=
dataManager
.
GetCodePointer
(
hovered_code
);
if
(
draging_pointer
==
dataManager
.
_datas
.
end
())
break
;
if
(
hovered_pos
==
1
)
{
if
(
deckManager
.
current_deck
.
side
.
size
()
<
20
)
{
deckManager
.
current_deck
.
main
.
erase
(
deckManager
.
current_deck
.
main
.
begin
()
+
hovered_seq
);
...
...
@@ -464,8 +468,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
break
;
if
(
!
is_draging
)
if
(
!
is_draging
)
{
draging_pointer
=
dataManager
.
GetCodePointer
(
hovered_code
);
if
(
draging_pointer
==
dataManager
.
_datas
.
end
())
break
;
}
if
(
hovered_pos
==
1
)
{
if
(
!
is_draging
)
deckManager
.
current_deck
.
main
.
erase
(
deckManager
.
current_deck
.
main
.
begin
()
+
hovered_seq
);
...
...
@@ -621,12 +628,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
irr
:
:
EET_KEY_INPUT_EVENT
:
{
switch
(
event
.
KeyInput
.
Key
)
{
case
irr
:
:
KEY_KEY_R
:
{
if
(
!
event
.
KeyInput
.
PressedDown
)
if
(
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
)
)
mainGame
->
textFont
->
setTransparency
(
true
);
break
;
}
case
irr
:
:
KEY_ESCAPE
:
{
mainGame
->
device
->
minimizeWindow
();
if
(
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
mainGame
->
device
->
minimizeWindow
();
break
;
}
default:
break
;
...
...
@@ -642,7 +650,7 @@ void DeckBuilder::FilterCards() {
const
wchar_t
*
pstr
=
mainGame
->
ebCardName
->
getText
();
int
trycode
=
BufferIO
::
GetVal
(
pstr
);
if
(
dataManager
.
GetData
(
trycode
,
0
))
{
auto
ptr
=
dataManager
.
GetCodePointer
(
trycode
);
auto
ptr
=
dataManager
.
GetCodePointer
(
trycode
);
// verified by GetData()
results
.
push_back
(
ptr
);
mainGame
->
scrFilter
->
setVisible
(
false
);
mainGame
->
scrFilter
->
setPos
(
0
);
...
...
gframe/deck_manager.cpp
View file @
f0ee4725
...
...
@@ -128,7 +128,7 @@ void DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec) {
if
(
cd
.
type
&
TYPE_TOKEN
)
continue
;
else
if
(
cd
.
type
&
0x802040
&&
deck
.
extra
.
size
()
<
15
)
{
deck
.
extra
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
deck
.
extra
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
//verified by GetData()
}
else
if
(
deck
.
main
.
size
()
<
60
)
{
deck
.
main
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
}
...
...
@@ -140,7 +140,7 @@ void DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec) {
if
(
cd
.
type
&
TYPE_TOKEN
)
continue
;
if
(
deck
.
side
.
size
()
<
15
)
deck
.
side
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
deck
.
side
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
//verified by GetData()
}
}
bool
DeckManager
::
LoadSide
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
)
{
...
...
gframe/duelclient.cpp
View file @
f0ee4725
...
...
@@ -916,7 +916,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
if
(
pcard
->
location
==
LOCATION_REMOVED
)
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
}
mainGame
->
dField
.
attackable_cards
.
clear
();
...
...
@@ -974,13 +974,13 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
SetCode
(
code
);
mainGame
->
dField
.
deck_act
=
true
;
}
if
(
pcard
->
location
==
LOCATION_GRAVE
)
else
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
if
(
pcard
->
location
==
LOCATION_REMOVED
)
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
if
(
pcard
->
location
==
LOCATION_EXTRA
)
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
if
(
pcard
->
location
==
LOCATION_SZONE
&&
pcard
->
sequence
==
6
)
else
if
(
pcard
->
location
==
LOCATION_SZONE
&&
pcard
->
sequence
==
6
)
mainGame
->
dField
.
pzone_act
[
pcard
->
controler
]
=
true
;
}
mainGame
->
dField
.
reposable_cards
.
clear
();
...
...
@@ -1031,7 +1031,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
if
(
pcard
->
location
==
LOCATION_REMOVED
)
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
}
if
(
BufferIO
::
ReadInt8
(
pbuf
))
{
...
...
@@ -1062,8 +1062,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
pcard
->
code
!=
code
)
pcard
->
SetCode
(
code
);
BufferIO
::
ReadInt8
(
pbuf
);
pcard
->
is_highlighting
=
true
;
mainGame
->
dField
.
highlighting_card
=
pcard
;
if
(
l
!=
LOCATION_DECK
)
{
pcard
->
is_highlighting
=
true
;
mainGame
->
dField
.
highlighting_card
=
pcard
;
}
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
200
),
dataManager
.
FormatLocation
(
l
,
s
),
dataManager
.
GetName
(
code
));
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
textFont
,
textBuffer
);
...
...
@@ -1190,11 +1192,11 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
l
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
if
(
l
==
LOCATION_REMOVED
)
else
if
(
l
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
if
(
l
==
LOCATION_EXTRA
)
else
if
(
l
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
if
(
l
==
LOCATION_OVERLAY
)
else
if
(
l
==
LOCATION_OVERLAY
)
panelmode
=
true
;
}
}
...
...
@@ -2373,7 +2375,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
}
else
mainGame
->
WaitFrameSignal
(
30
);
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
1610
),
dataManager
.
GetName
(
pcard
->
code
),
dataManager
.
FormatLocation
(
l
,
s
),
s
);
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
1610
),
dataManager
.
GetName
(
pcard
->
code
),
dataManager
.
FormatLocation
(
l
,
s
),
s
+
1
);
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
pcard
->
code
);
pcard
->
is_highlighting
=
false
;
...
...
gframe/event_handler.cpp
View file @
f0ee4725
...
...
@@ -728,44 +728,78 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
SCROLL_CARD_SELECT
:
{
int
pos
=
mainGame
->
scrCardList
->
getPos
()
/
10
;
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
mainGame
->
stCardPos
[
i
]
->
enableOverrideColor
(
false
);
if
(
selectable_cards
[
i
+
pos
]
->
code
)
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
GetTexture
(
selectable_cards
[
i
+
pos
]
->
code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
if
(
sort_list
.
size
())
{
if
(
sort_list
[
pos
+
i
]
>
0
)
if
(
sort_list
.
size
())
{
if
(
sort_list
[
pos
+
i
]
>
0
)
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
pos
+
i
]);
else
myswprintf
(
formatBuffer
,
L""
);
}
else
{
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
location
,
selectable_cards
[
i
+
pos
]
->
sequence
),
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
}
else
{
if
(
selectable_cards
[
i
+
pos
]
->
is_conti
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
+
1
,
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
location
,
selectable_cards
[
i
+
pos
]
->
sequence
),
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
}
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffff00
);
else
if
(
selectable_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
selectable_cards
[
i
+
pos
]
->
owner
!=
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffff00
);
else
if
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffff00
);
else
if
(
selectable_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
}
break
;
}
case
SCROLL_CARD_DISPLAY
:
{
int
pos
=
mainGame
->
scrDisplayList
->
getPos
()
/
10
;
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
mainGame
->
stDisplayPos
[
i
]
->
enableOverrideColor
(
false
);
if
(
display_cards
[
i
+
pos
]
->
code
)
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
GetTexture
(
display_cards
[
i
+
pos
]
->
code
));
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
location
,
display_cards
[
i
+
pos
]
->
sequence
),
display_cards
[
i
+
pos
]
->
sequence
+
1
);
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
display_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
display_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
+
1
,
display_cards
[
i
+
pos
]
->
sequence
+
1
);
}
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
location
,
display_cards
[
i
+
pos
]
->
sequence
),
display_cards
[
i
+
pos
]
->
sequence
+
1
);
mainGame
->
stDisplayPos
[
i
]
->
setText
(
formatBuffer
);
if
(
display_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
display_cards
[
i
+
pos
]
->
owner
!=
display_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
display_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
else
{
if
(
display_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffd0d0d0
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
}
}
break
;
}
...
...
@@ -798,7 +832,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
ancard
.
clear
();
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
if
(
wcsstr
(
cit
->
second
.
name
,
pname
)
!=
0
)
{
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
//datas.alias can be double card names or alias
if
(
cp
->
second
.
code
==
78734254
||
cp
->
second
.
code
==
13857930
||
!
cp
->
second
.
alias
&&
!
((
cp
->
second
.
type
&
(
TYPE_MONSTER
+
TYPE_TOKEN
))
==
(
TYPE_MONSTER
+
TYPE_TOKEN
)))
{
mainGame
->
lstANCard
->
addItem
(
cit
->
second
.
name
);
...
...
@@ -832,7 +867,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
ancard
.
clear
();
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
if
(
wcsstr
(
cit
->
second
.
name
,
pname
)
!=
0
)
{
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
//datas.alias can be double card names or alias
if
(
cp
->
second
.
code
==
78734254
||
cp
->
second
.
code
==
13857930
||
!
cp
->
second
.
alias
&&
!
((
cp
->
second
.
type
&
(
TYPE_MONSTER
+
TYPE_TOKEN
))
==
(
TYPE_MONSTER
+
TYPE_TOKEN
)))
{
mainGame
->
lstANCard
->
addItem
(
cit
->
second
.
name
);
...
...
@@ -928,6 +964,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
selectable_cards
.
clear
();
switch
(
hovered_location
)
{
case
LOCATION_DECK
:
{
if
(
deck
[
hovered_controler
].
size
()
==
0
)
break
;
for
(
int32
i
=
(
int32
)
deck
[
hovered_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
selectable_cards
.
push_back
(
deck
[
hovered_controler
][
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1000
),
deck
[
hovered_controler
].
size
());
...
...
@@ -935,6 +973,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
case
LOCATION_MZONE
:
{
if
(
!
clicked_card
||
clicked_card
->
overlayed
.
size
()
==
0
)
break
;
for
(
int32
i
=
0
;
i
<
(
int32
)
clicked_card
->
overlayed
.
size
();
++
i
)
selectable_cards
.
push_back
(
clicked_card
->
overlayed
[
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1007
),
clicked_card
->
overlayed
.
size
());
...
...
@@ -942,6 +982,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
case
LOCATION_GRAVE
:
{
if
(
grave
[
hovered_controler
].
size
()
==
0
)
break
;
for
(
int32
i
=
(
int32
)
grave
[
hovered_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
selectable_cards
.
push_back
(
grave
[
hovered_controler
][
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1004
),
grave
[
hovered_controler
].
size
());
...
...
@@ -949,6 +991,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
case
LOCATION_REMOVED
:
{
if
(
remove
[
hovered_controler
].
size
()
==
0
)
break
;
for
(
int32
i
=
(
int32
)
remove
[
hovered_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
selectable_cards
.
push_back
(
remove
[
hovered_controler
][
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1005
),
remove
[
hovered_controler
].
size
());
...
...
@@ -956,6 +1000,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
case
LOCATION_EXTRA
:
{
if
(
extra
[
hovered_controler
].
size
()
==
0
)
break
;
for
(
int32
i
=
(
int32
)
extra
[
hovered_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
selectable_cards
.
push_back
(
extra
[
hovered_controler
][
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1006
),
extra
[
hovered_controler
].
size
());
...
...
@@ -972,7 +1018,18 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
selectable_cards
.
clear
();
switch
(
hovered_location
)
{
case
LOCATION_MZONE
:
{
if
(
!
clicked_card
||
clicked_card
->
overlayed
.
size
()
==
0
)
break
;
for
(
int32
i
=
0
;
i
<
(
int32
)
clicked_card
->
overlayed
.
size
();
++
i
)
selectable_cards
.
push_back
(
clicked_card
->
overlayed
[
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1007
),
clicked_card
->
overlayed
.
size
());
mainGame
->
wCardSelect
->
setText
(
formatBuffer
);
break
;
}
case
LOCATION_GRAVE
:
{
if
(
grave
[
hovered_controler
].
size
()
==
0
)
break
;
for
(
int32
i
=
(
int32
)
grave
[
hovered_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
selectable_cards
.
push_back
(
grave
[
hovered_controler
][
i
]);
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
1004
),
grave
[
hovered_controler
].
size
());
...
...
@@ -1584,9 +1641,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
irr
:
:
KEY_F1
:
case
irr
:
:
KEY_F2
:
case
irr
:
:
KEY_F3
:
case
irr
:
:
KEY_F4
:
case
irr
:
:
KEY_F5
:
case
irr
:
:
KEY_F6
:
case
irr
:
:
KEY_F7
:
{
case
irr
:
:
KEY_F7
:
case
irr
:
:
KEY_F8
:
{
if
(
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
player_type
!=
7
&&
mainGame
->
dInfo
.
isStarted
&&
!
mainGame
->
wCardDisplay
->
isVisible
()
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
{
int
loc_id
=
0
;
...
...
@@ -1607,6 +1666,15 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for
(
int32
i
=
(
int32
)
extra
[
0
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
extra
[
0
][
i
]);
break
;
case
irr
:
:
KEY_F4
:
loc_id
=
1007
;
for
(
int32
i
=
0
;
i
<=
4
;
++
i
)
{
if
(
mzone
[
0
][
i
]
&&
mzone
[
0
][
i
]
->
overlayed
.
size
())
{
for
(
int32
j
=
0
;
j
<=
(
int32
)
mzone
[
0
][
i
]
->
overlayed
.
size
()
-
1
;
++
j
)
display_cards
.
push_back
(
mzone
[
0
][
i
]
->
overlayed
[
j
]);
}
}
break
;
case
irr
:
:
KEY_F5
:
loc_id
=
1004
;
for
(
int32
i
=
(
int32
)
grave
[
1
].
size
()
-
1
;
i
>=
0
;
--
i
)
...
...
@@ -1622,6 +1690,15 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for
(
int32
i
=
(
int32
)
extra
[
1
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
extra
[
1
][
i
]);
break
;
case
irr
:
:
KEY_F8
:
loc_id
=
1007
;
for
(
int32
i
=
0
;
i
<=
4
;
++
i
)
{
if
(
mzone
[
1
][
i
]
&&
mzone
[
1
][
i
]
->
overlayed
.
size
())
{
for
(
int32
j
=
0
;
j
<=
(
int32
)
mzone
[
1
][
i
]
->
overlayed
.
size
()
-
1
;
++
j
)
display_cards
.
push_back
(
mzone
[
1
][
i
]
->
overlayed
[
j
]);
}
}
break
;
}
if
(
display_cards
.
size
())
{
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
loc_id
),
display_cards
.
size
());
...
...
@@ -1632,7 +1709,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
case
irr
:
:
KEY_ESCAPE
:
{
mainGame
->
device
->
minimizeWindow
();
if
(
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
mainGame
->
device
->
minimizeWindow
();
break
;
}
default:
break
;
...
...
gframe/game.cpp
View file @
f0ee4725
...
...
@@ -17,7 +17,7 @@
#include <unistd.h>
#endif
const
unsigned
short
PRO_VERSION
=
0x133
6
;
const
unsigned
short
PRO_VERSION
=
0x133
7
;
namespace
ygo
{
...
...
@@ -381,7 +381,7 @@ bool Game::Initialize() {
wCardSelect
->
getCloseButton
()
->
setVisible
(
false
);
wCardSelect
->
setVisible
(
false
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
stCardPos
[
i
]
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
40
+
125
*
i
,
30
,
139
+
125
*
i
,
50
),
true
,
false
,
wCardSelect
,
-
1
,
true
);
stCardPos
[
i
]
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
30
+
125
*
i
,
30
,
150
+
125
*
i
,
50
),
true
,
false
,
wCardSelect
,
-
1
,
true
);
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
stCardPos
[
i
]
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnCardSelect
[
i
]
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
30
+
125
*
i
,
55
,
150
+
125
*
i
,
225
),
wCardSelect
,
BUTTON_CARD_0
+
i
);
...
...
@@ -394,7 +394,7 @@ bool Game::Initialize() {
wCardDisplay
->
getCloseButton
()
->
setVisible
(
false
);
wCardDisplay
->
setVisible
(
false
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
stDisplayPos
[
i
]
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
40
+
125
*
i
,
30
,
139
+
125
*
i
,
50
),
true
,
false
,
wCardDisplay
,
-
1
,
true
);
stDisplayPos
[
i
]
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
30
+
125
*
i
,
30
,
150
+
125
*
i
,
50
),
true
,
false
,
wCardDisplay
,
-
1
,
true
);
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
stDisplayPos
[
i
]
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnCardDisplay
[
i
]
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
30
+
125
*
i
,
55
,
150
+
125
*
i
,
225
),
wCardDisplay
,
BUTTON_DISPLAY_0
+
i
);
...
...
gframe/menu_handler.cpp
View file @
f0ee4725
...
...
@@ -307,7 +307,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break
;
}
BufferIO
::
CopyWStr
(
mainGame
->
cbDeckSelect
->
getItem
(
mainGame
->
cbDeckSelect
->
getSelected
()),
mainGame
->
gameConf
.
lastdeck
,
20
);
mainGame
->
gameConf
.
lastdeck
,
64
);
char
deckbuf
[
1024
];
char
*
pdeck
=
deckbuf
;
BufferIO
::
WriteInt32
(
pdeck
,
deckManager
.
current_deck
.
main
.
size
()
+
deckManager
.
current_deck
.
extra
.
size
());
...
...
@@ -364,12 +364,13 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
case
irr
:
:
EET_KEY_INPUT_EVENT
:
{
switch
(
event
.
KeyInput
.
Key
)
{
case
irr
:
:
KEY_KEY_R
:
{
if
(
!
event
.
KeyInput
.
PressedDown
)
if
(
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
)
)
mainGame
->
textFont
->
setTransparency
(
true
);
break
;
}
case
irr
:
:
KEY_ESCAPE
:
{
mainGame
->
device
->
minimizeWindow
();
if
(
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
mainGame
->
device
->
minimizeWindow
();
break
;
}
default:
break
;
...
...
ocgcore
@
1a179ceb
Subproject commit
909d844e4a36fda3699e79fc030c9216c0ba6d2b
Subproject commit
1a179cebde187c00b28e47394e4104ba6f0d103a
script
@
57598a08
Subproject commit
8223ac0d56574d27c10bd6a128f0bef0417cdf32
Subproject commit
57598a0854fbea5cc0ad9aa631a3255df7e1e513
strings.conf
View file @
f0ee4725
...
...
@@ -75,13 +75,13 @@
!
system
510
请选择要盖放的卡
!
system
511
请选择融合召唤的素材
!
system
512
请选择同调召唤的素材
!
system
513
请选择超
量
召唤的素材
!
system
513
请选择超
维
召唤的素材
!
system
514
请选择表侧表示的卡
!
system
515
请选择里侧表示的卡
!
system
516
请选择攻击表示的怪兽
!
system
517
请选择守备表示的怪兽
!
system
518
请选择要装备的卡
!
system
519
请选择要取除的超
量
素材
!
system
519
请选择要取除的超
维
素材
!
system
520
请选择要改变控制权的怪兽
!
system
521
请选择要代替破坏的卡
!
system
522
请选择表侧攻击表示的怪兽
...
...
@@ -94,7 +94,7 @@
!
system
529
请选择自己的卡
!
system
530
请选择对方的卡
!
system
531
请选择上级召唤用需要解放的怪兽:
!
system
532
请选择要取除超
量
素材的怪兽
!
system
532
请选择要取除超
维
素材的怪兽
!
system
550
请选择要发动的效果
!
system
551
请选择效果的对象
!
system
552
请选择硬币的正反面
...
...
@@ -173,7 +173,7 @@
!
system
1070
反击
!
system
1071
反转
!
system
1072
卡通
!
system
1073
超
量
!
system
1073
超
维
!
system
1074
灵摆
!
system
1080
(
N
/
A
)
#GUI
...
...
@@ -207,7 +207,7 @@
!
system
1127
幸运
!
system
1128
融合相关
!
system
1129
同调相关
!
system
1130
超
量
相关
!
system
1130
超
维
相关
!
system
1131
效果无效
#actions
!
system
1150
发动
...
...
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