Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
5f05c0be
Commit
5f05c0be
authored
Mar 06, 2015
by
Zach
Browse files
Merge pull request #775 from Cockatrice/fix-331
Cards played face down always go untapped to main row.
parents
5fa5c6b7
c72ddcfa
Changes
4
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/player.cpp
View file @
5f05c0be
...
@@ -1581,18 +1581,19 @@ void Player::playCard(CardItem *c, bool faceDown, bool tapped)
...
@@ -1581,18 +1581,19 @@ void Player::playCard(CardItem *c, bool faceDown, bool tapped)
cardToMove
->
set_card_id
(
c
->
getId
());
cardToMove
->
set_card_id
(
c
->
getId
());
CardInfo
*
ci
=
c
->
getInfo
();
CardInfo
*
ci
=
c
->
getInfo
();
if
((
!
settingsCache
->
getPlayToStack
()
&&
ci
->
getTableRow
()
==
3
)
||
if
(
!
faceDown
&&
((
!
settingsCache
->
getPlayToStack
()
&&
ci
->
getTableRow
()
==
3
)
||
((
settingsCache
->
getPlayToStack
()
&&
ci
->
getTableRow
()
!=
0
)
&&
((
settingsCache
->
getPlayToStack
()
&&
ci
->
getTableRow
()
!=
0
)
&&
c
->
getZone
()
->
getName
().
toStdString
()
!=
"stack"
))
{
c
->
getZone
()
->
getName
().
toStdString
()
!=
"stack"
))
)
{
cmd
.
set_target_zone
(
"stack"
);
cmd
.
set_target_zone
(
"stack"
);
cmd
.
set_x
(
0
);
cmd
.
set_x
(
0
);
cmd
.
set_y
(
0
);
cmd
.
set_y
(
0
);
}
else
{
}
else
{
QPoint
gridPoint
=
QPoint
(
-
1
,
2
-
ci
->
getTableRow
());
int
tableRow
=
faceDown
?
2
:
ci
->
getTableRow
();
QPoint
gridPoint
=
QPoint
(
-
1
,
2
-
tableRow
);
cardToMove
->
set_face_down
(
faceDown
);
cardToMove
->
set_face_down
(
faceDown
);
cardToMove
->
set_pt
(
ci
->
getPowTough
().
toStdString
());
cardToMove
->
set_pt
(
ci
->
getPowTough
().
toStdString
());
cardToMove
->
set_tapped
(
tapped
);
cardToMove
->
set_tapped
(
faceDown
?
false
:
tapped
);
if
(
ci
->
getT
ableRow
()
!=
3
)
if
(
t
ableRow
!=
3
)
cmd
.
set_target_zone
(
"table"
);
cmd
.
set_target_zone
(
"table"
);
cmd
.
set_x
(
gridPoint
.
x
());
cmd
.
set_x
(
gridPoint
.
x
());
cmd
.
set_y
(
gridPoint
.
y
());
cmd
.
set_y
(
gridPoint
.
y
());
...
@@ -2146,7 +2147,7 @@ void Player::actHide()
...
@@ -2146,7 +2147,7 @@ void Player::actHide()
void
Player
::
actPlayFacedown
()
void
Player
::
actPlayFacedown
()
{
{
playCard
(
game
->
getActiveCard
(),
true
,
game
->
getActiveCard
()
->
getInfo
()
->
getCipt
()
);
playCard
(
game
->
getActiveCard
(),
true
,
false
);
}
}
void
Player
::
updateCardMenu
(
CardItem
*
card
)
void
Player
::
updateCardMenu
(
CardItem
*
card
)
...
...
common/server_cardzone.cpp
View file @
5f05c0be
...
@@ -85,7 +85,7 @@ void Server_CardZone::insertCardIntoCoordMap(Server_Card *card, int x, int y)
...
@@ -85,7 +85,7 @@ void Server_CardZone::insertCardIntoCoordMap(Server_Card *card, int x, int y)
coordinateMap
[
y
].
insert
(
x
,
card
);
coordinateMap
[
y
].
insert
(
x
,
card
);
if
(
!
(
x
%
3
))
{
if
(
!
(
x
%
3
))
{
if
(
!
freePilesMap
[
y
].
contains
(
card
->
getName
(),
x
)
&&
card
->
getAttachedCards
().
isEmpty
())
if
(
!
card
->
getFaceDown
()
&&
!
freePilesMap
[
y
].
contains
(
card
->
getName
(),
x
)
&&
card
->
getAttachedCards
().
isEmpty
())
freePilesMap
[
y
].
insert
(
card
->
getName
(),
x
);
freePilesMap
[
y
].
insert
(
card
->
getName
(),
x
);
if
(
freeSpaceMap
[
y
]
==
x
)
{
if
(
freeSpaceMap
[
y
]
==
x
)
{
int
nextFreeX
=
x
;
int
nextFreeX
=
x
;
...
@@ -141,11 +141,11 @@ Server_Card *Server_CardZone::getCard(int id, int *position, bool remove)
...
@@ -141,11 +141,11 @@ Server_Card *Server_CardZone::getCard(int id, int *position, bool remove)
}
}
}
}
int
Server_CardZone
::
getFreeGridColumn
(
int
x
,
int
y
,
const
QString
&
cardName
)
const
int
Server_CardZone
::
getFreeGridColumn
(
int
x
,
int
y
,
const
QString
&
cardName
,
bool
dontStackSameName
)
const
{
{
const
QMap
<
int
,
Server_Card
*>
&
coordMap
=
coordinateMap
.
value
(
y
);
const
QMap
<
int
,
Server_Card
*>
&
coordMap
=
coordinateMap
.
value
(
y
);
if
(
x
==
-
1
)
{
if
(
x
==
-
1
)
{
if
(
freePilesMap
[
y
].
contains
(
cardName
))
{
if
(
!
dontStackSameName
&&
freePilesMap
[
y
].
contains
(
cardName
))
{
x
=
(
freePilesMap
[
y
].
value
(
cardName
)
/
3
)
*
3
;
x
=
(
freePilesMap
[
y
].
value
(
cardName
)
/
3
)
*
3
;
if
(
!
coordMap
.
contains
(
x
))
if
(
!
coordMap
.
contains
(
x
))
return
x
;
return
x
;
...
...
common/server_cardzone.h
View file @
5f05c0be
...
@@ -62,7 +62,7 @@ public:
...
@@ -62,7 +62,7 @@ public:
Server_Player
*
getPlayer
()
const
{
return
player
;
}
Server_Player
*
getPlayer
()
const
{
return
player
;
}
void
getInfo
(
ServerInfo_Zone
*
info
,
Server_Player
*
playerWhosAsking
,
bool
omniscient
);
void
getInfo
(
ServerInfo_Zone
*
info
,
Server_Player
*
playerWhosAsking
,
bool
omniscient
);
int
getFreeGridColumn
(
int
x
,
int
y
,
const
QString
&
cardName
)
const
;
int
getFreeGridColumn
(
int
x
,
int
y
,
const
QString
&
cardName
,
bool
dontStackSameName
)
const
;
bool
isColumnEmpty
(
int
x
,
int
y
)
const
;
bool
isColumnEmpty
(
int
x
,
int
y
)
const
;
bool
isColumnStacked
(
int
x
,
int
y
)
const
;
bool
isColumnStacked
(
int
x
,
int
y
)
const
;
void
fixFreeSpaces
(
GameEventStorage
&
ges
);
void
fixFreeSpaces
(
GameEventStorage
&
ges
);
...
...
common/server_player.cpp
View file @
5f05c0be
...
@@ -439,11 +439,12 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car
...
@@ -439,11 +439,12 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car
card
->
deleteLater
();
card
->
deleteLater
();
}
else
{
}
else
{
card
->
setFaceDown
(
faceDown
);
if
(
!
targetzone
->
hasCoords
())
{
if
(
!
targetzone
->
hasCoords
())
{
y
=
0
;
y
=
0
;
card
->
resetState
();
card
->
resetState
();
}
else
}
else
newX
=
targetzone
->
getFreeGridColumn
(
newX
,
y
,
card
->
getName
());
newX
=
targetzone
->
getFreeGridColumn
(
newX
,
y
,
card
->
getName
()
,
faceDown
);
targetzone
->
insertCard
(
card
,
newX
,
y
);
targetzone
->
insertCard
(
card
,
newX
,
y
);
...
@@ -464,7 +465,6 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car
...
@@ -464,7 +465,6 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car
int
oldCardId
=
card
->
getId
();
int
oldCardId
=
card
->
getId
();
if
((
faceDown
&&
(
startzone
!=
targetzone
))
||
(
targetzone
->
getPlayer
()
!=
startzone
->
getPlayer
()))
if
((
faceDown
&&
(
startzone
!=
targetzone
))
||
(
targetzone
->
getPlayer
()
!=
startzone
->
getPlayer
()))
card
->
setId
(
targetzone
->
getPlayer
()
->
newCardId
());
card
->
setId
(
targetzone
->
getPlayer
()
->
newCardId
());
card
->
setFaceDown
(
faceDown
);
// The player does not get to see which card he moved if it moves between two parts of hidden zones which
// The player does not get to see which card he moved if it moves between two parts of hidden zones which
// are not being looked at.
// are not being looked at.
...
@@ -1043,7 +1043,7 @@ Response::ResponseCode Server_Player::cmdAttachCard(const Command_AttachCard &cm
...
@@ -1043,7 +1043,7 @@ Response::ResponseCode Server_Player::cmdAttachCard(const Command_AttachCard &cm
if
(
targetzone
->
isColumnStacked
(
targetCard
->
getX
(),
targetCard
->
getY
()))
{
if
(
targetzone
->
isColumnStacked
(
targetCard
->
getX
(),
targetCard
->
getY
()))
{
CardToMove
*
cardToMove
=
new
CardToMove
;
CardToMove
*
cardToMove
=
new
CardToMove
;
cardToMove
->
set_card_id
(
targetCard
->
getId
());
cardToMove
->
set_card_id
(
targetCard
->
getId
());
targetPlayer
->
moveCard
(
ges
,
targetzone
,
QList
<
const
CardToMove
*>
()
<<
cardToMove
,
targetzone
,
targetzone
->
getFreeGridColumn
(
-
2
,
targetCard
->
getY
(),
targetCard
->
getName
()),
targetCard
->
getY
(),
targetCard
->
getFaceDown
());
targetPlayer
->
moveCard
(
ges
,
targetzone
,
QList
<
const
CardToMove
*>
()
<<
cardToMove
,
targetzone
,
targetzone
->
getFreeGridColumn
(
-
2
,
targetCard
->
getY
(),
targetCard
->
getName
()
,
false
),
targetCard
->
getY
(),
targetCard
->
getFaceDown
());
delete
cardToMove
;
delete
cardToMove
;
}
}
...
@@ -1080,7 +1080,7 @@ Response::ResponseCode Server_Player::cmdCreateToken(const Command_CreateToken &
...
@@ -1080,7 +1080,7 @@ Response::ResponseCode Server_Player::cmdCreateToken(const Command_CreateToken &
int
x
=
cmd
.
x
();
int
x
=
cmd
.
x
();
int
y
=
cmd
.
y
();
int
y
=
cmd
.
y
();
if
(
zone
->
hasCoords
())
if
(
zone
->
hasCoords
())
x
=
zone
->
getFreeGridColumn
(
x
,
y
,
cardName
);
x
=
zone
->
getFreeGridColumn
(
x
,
y
,
cardName
,
false
);
if
(
x
<
0
)
if
(
x
<
0
)
x
=
0
;
x
=
0
;
if
(
y
<
0
)
if
(
y
<
0
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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