the cutting room mirror

UNO & Friends

This game is defunct.
Do note the game no longer works at all without modifications. This is most likely due to the game's servers being shut down. As a result, further official developments with the game are unlikely to happen.

To do:
Enable the devcheats if possible, also doc them.

Ladies and gentlemen, Garfield UNO & Friends!

Developer Leftovers#

Dummy Save File#

Present in json/profile.json:

{
    "level": 1,
    "xp": 0,
    "language": 0,
    "_inventory": {
        "tokens": 0,
        "coins": 0,
        "scratches": 0,
        "jackpotScratches":0
    },
    "MusicVolume" : [],
    "SFXVolume" : [],
    "version": 397,
    "clan": {
        "id": "This_is_such_a_bad_idea",
        "name": "Fake clan"
    },
    "_customFields":
    {
        "version": 395,
        "partialXP": 0,
        "trackingPrevName": "BAD_PROFILE",
        "playerName": "BAD_PROFILE",
        "playerGender": 0,
        "welcomeScreenLaunchCounter": 0,
        "store": [
            [
                43584,
                1,
                1
            ],
            [
                43198,
                1,
                1
            ],
            [
                44180,
                1,
                1
            ],
            [
                82768,
                1,
                1
            ],
            [
                43880,
                1,
                0
            ]
        ],
        "cardIndex": 0,
        "inventoryCards": [
            1,
            1,
            1,
            0,
            0,
            0
        ],
        "lastSubmittedWeeklyLBScore": 0,
        "nextLBResetTime": 0,
        "pendingXP": 0,
        "pendingCoins": 0,
        "loggedIn": 8,
        "scratchlastplayed": [
            0,
            8,
            21
        ],
        "LastFreeScratch": 0,
        "KeepFreeScratchTimer" : 0,
        "InitialAvatarSelected": 0,
        "HasSelectedPlayerName": 1,
        "TotalGamesPlayed" : 0,
        "TotalWon": 0,
        "TotalLoss": 0,
        "TotalPlayPassShown": 0,
        "TotalPassTurn": 0,
        "SpecialCardsPlayed": 0,
        "HasRatedUs" : 0,
        "bShowRateUsPopup" : 0,
        "LastWonGame"   : 0,
        "RateUsCounter" : 0,
        "FirstLaunch" : 0,
        "TimeSessionStarted" : 0,
        "TimeSessionEnded" : 0,
        "MusicVolume" : [],
        "MusicVol" : 50,
        "SFXVolume" : 50,
        "PostFacebookStories" : 1,
        "Tutorials" :
        {
            "FirstTimeInsideMainMenu" : 0,
            "FirstLevelUpShown" : 0,
            "FirstGameOfUnoFinished" : 0,
            "BonusPointTutorialShown" : 0,
            "ProfileViewCounter" : 0,
            "PurchasedBoost" : 0,
            "BoostTutorialShown" : 0,
            "GiftsTutorialShown" : 0,
            "TutorialPopupShown" : 0,
            "FreeTournamentPlayed" : 0
        },  
        "EffectPack": "",
        "gamebackground":{"bg":"RedBG_InGame.swf", "orb":"RedBGorbOnly.swf"},
        "gameBGColourID":0,
        "serverPricing":[],
        "equippedclothes":{},
        "Track_Today":[2012,10,15],
        "SS UIDs": {
            "which SS": -1,
            "UID": "",
            "URL": ""
        },
        "giftRecipients" : {
        },
        "friendInviteList": {
        },
        "FirstTimeScratch": 1,
        "PlayerTurnedOffAds": 0,
        "TotalPlaytimeSeconds" : 0,
        "IAP_TokenPacksBought" : 0,
        "IAP_CoinPacksBought" : 0,
        "IAP_ScratchPacksBought" : 0,
        "PurchaseCount" : 1,
        "PlayedPlatforms" : 0,
        "PlatformReward" : 0,
        "SocialLikesReward" : 0,
        "CurrentWinStreak" : 0,
        "TopWinStreak" : 0,
        "RecentlyPlacedSecond" : 0,
        "LastWinTime" : 0,
        "RechargeTokenPopupSeen" : 1,
        "LeaderboardEntered" : 0,
        "ProgressEntered" : 0,
        "TournamentsEntered" : 0,
        "TLTTournamentsEntered" : 0,
        "PromosEntered" : 0,
        "MegaCompanionEntered" : 0,
        "CompanionEntered" : 0,
        "StreakExperationTime" : 0,
        "LastSetVisVersion" : 0,
        "CurrentGameType" : 0,
        "NumAddedFriends" : 0,
        "TrackedPlatforms":0,
        "WasBanned":0,
        "FriendIncentiveList":{
        "Default":{
        "HasBeenRewarded":0,
        "CanBeRewarded":0
        }
        },
        "refunds":[],
        "DailyLoginBonus":{
            "DailyLoginCount":0,
            "LastLogin":1421056800,
            "CurrentLoginTier":0,
            "ConsecutiveLoginCount":0,
            "DailyRewardsPending":0,
            "ConsecutiveRewardsPending":0,
            "CurrentDailyLoginTier":0
        },
        "WeeklyTimePlayed":{
            "TotalTimePlayed": 0,
            "LastWeekTime": 0,
            "CurrentWeekTime": 0,
            "DropPercent": 0,
            "CurrentWeekNumber": 0
        },
        "prestigeRank":0,
        "crownsEarned":{
            "CROWN_GREEN":false,    
            "CROWN_BRONZE":false,
            "CROWN_SILVER":false,
            "CROWN_GOLD":false,
            "CROWN_PLATINUM":false,
            "CROWN_RUBY":false,
            "CROWN_PEARL":false,
            "CROWN_DIAMOND":false       
        }
    },
    "total_playtime":0,
    "ContentUnlocked": 0
}

Documentations#

To do:
More comment tags in json files.

Present in readme.txt in json.

Each json tells what the section it is used for

----
ui element:
----
name: name of the element
ID: id using in the ui system. Must be unique
Position: the location we place ui.
    positioning:    0,0 is top left of screen
            1024,768 is bottom right of screen


DrawLayer: layer in which we draw the ui. High amount = on top everything else
SpriteID: the sprite id in the DATA.hpp
AnimID: the animation number in the sprite file
UIType: type of ui. ie: window, button, etc
Framerate: the rate in which the animation will play
AnimLoop: animation loop whenever it finishes animating
ButtonDownState: for buttons only, the animation when the button is pressed
soundFile: optional, the sound file it plays when the button was pressed

----
tab items
----
name: name of the item
ID: id using in the ui system. Must be unique
SpriteID: the sprite id in the DATA.hpp
AnimID: the animation number in the sprite file
Framerate: the rate in which the animation will play
AnimLoop: animation loop whenever it finishes animating

Present in json/textDesignTest.json:

At the moment, please note that alpha on the gradiant color doesn't work,

PlayWithText        - show the text so that you can see the changes. This text should be shown in main menu,

FontSize            - the size of our text,
BoxSize         - size of the box. First value is X and Y for the second,
SingleFontColor - the color of our text when we want to be a single color (format : RGBA),

UseGradiantColor    - use gradiant color, 1 = yes, 0 = no,
GradiantFontColor   - color of our text using gradiant stuff,
                     values : ,
                     0 = top left,
                     1 = bottom left,
                     2 = bottom right,
                     3 = top right,
                     format : ARGB,

BorderSize          - size of the text border,
FontBGColor     - color of the border,
SpaceWidth          - the size of space,

UseShadow           - activate shadow, 1 = yes and 0 = no,
ShadowOffset        - the space between the text and it's shadow. First value is X and second is Y,
ShadowColor         - Color of the shadow by RGBA format

Present in basically every file in /json that has Tutorials at the end:

Visible                 - show pop up,
PopupAnimation          - animation based in the sprite file (use the aurora sprite file for reference),
PopupPosition               - position of the popup,

TextInformation,
    TextId              - text id set to display in the popup (see dev if you need to change this),
    TextTabId               - text tab (instruction/in-game/etc) (see dev if you need to change this),
    StartingTextPosition    - text position relative to the popup position,
    TextBox             - text box width and height (for multi-line purposes),
    TextSize                - text size,
    
OkButton,
    Position                - button position relative to the popup position,
    Enabled             - Show this button for the step,
    
Arrow,
    Enabled             - show an arrow if needed for the step,
    Position                - position of this arrow,
    Rotation                - angle of the arrow

Batch Scripts#

To do:
Do they exist on iOS too?

In the root of the game's assets, there are a few batch scripts from an internal SVN.

ListLockOwner.bat:

@echo off

..\..\lib\fml\tools\Python27\python.exe ListLockOwner.py

pause

ParseAllSwf.bat:

set FLASH_DIR=.\
set TOOL_DIR=..\..\Tools\FlashTools\

for /r %FLASH_DIR% %%I in (*.swf) do (
    %TOOL_DIR%SWFParser\Release\SWFParser.exe "%%I" > %%~nI.xml
    )

Developer Text#

To do:
Find more if possible.

FuckingIAPButton
I have no clue to what to do here

Watch your language.