integer me;

string card_texture(integer j, integer k) {
string s;
list map1 = ["t","j","q","k","a"];

if (j < 10) {
s = s + (string)j;
} else {
s = s + llList2String(map1, j - 10);
}

list map2 = ["s","h","c","d"];
s = s + llList2String(map2, k - 1);

if (j == 15) {
return "back.jpg";
}

return s + ".jpg";
}

integer card_idvalue(integer num) {
integer v;
if (num < 13) {
v = num + 2;
} else {
if (num < 26) {
v = num - 11;
} else {
if (num < 39) {
v = num - 24;
} else {
if (num < 53) {
v = num - 37;
} else {
v = 15;
}
}
}
}

return v;
}

integer card_idsuit(integer num) {
integer s;

if (num < 13) {
s = 1;
} else {
if (num < 26) {
s = 2;
} else {
if (num < 39) {
s = 3;
} else {
s = 4;
}
}
}

return s;
}

default {
state_entry()
{
llSetTexture("back.jpg", 0);
}

link_message(integer sender_num, integer num, string str, key id)
{
list message = llParseString2List(str, [" "], []);
if (llList2String(message, 0) == "Card")
{
integer num = llList2Integer(message, 1);
llSetTexture(card_texture(card_idvalue(num), card_idsuit(num)), 0);
}
else if (llList2String(message, 0) == "Hide")
{
llSetTexture("clear.jpg", ALL_SIDES);
}
}

listen(integer channel, string name, key id, string message) {
if (llGetOwnerKey(id) == llGetOwner()) {
if (message == "nocards") {
llDie();
} else {
if (llGetSubString(message, 0, 3) == "face") {
if (me == 53) {
integer num = (integer)(llGetSubString(message,5,-1));
llSetTexture(card_texture(card_idvalue(num), card_idsuit(num)), 0);
}
}
}
}
}
}