We just released a prototype of the cancelled SNES port of Puggsy! Take a look!
As always, thank you for supporting The Cutting Room Floor on Patreon!

Angry Birds Seasons

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Angry Birds Seasons

Developer: Rovio
Publisher: Rovio
Platforms: Windows, Mac OS X, iOS, Android, Nintendo 3DS, Wii U, Xbox 360, Windows Phone
Released internationally: November 4, 2011


CharacterIcon.png This game has unused playable characters.
SourceIcon.png This game has uncompiled source code.
GraphicsIcon.png This game has unused graphics.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.


Hmmm...
To do:
  • Just like Classic, older versions can contain developer scripts, doc Android 6.6.2's.
  • Unused levels in the "Prototypes" folder and "pack71" zip file.

Originally known as Angry Birds Halloween, Angry Birds Seasons basically takes the formula of the original game but gives each of the chapters the theme of a particular holiday or, of course, season. The game was also included in Angry Birds Trilogy on consoles and the 3DS.

Unused Graphics

Prototype Bubbles

Angry Birds Seasons Prototype Bubbles.png

An early version of Bubbles found in version 1.6.0. This version has darker feathers with dark green dots and a yellow belly.

Prototyping Episode

Angry Birds Seasons Prototyping.png

An icon for a prototyping episode, likely used to test levels before release.

Unused Text

1. Poached Eggs
2. Mighty Hoax
3. Danger Above
4. The Big Setup

Leftover text from Angry Birds.

Enable vibration?
Vibra: ON
Vibra: OFF
Vibra

Leftover text from the iOS and Android versions.

Angry Birds Seasons HD Free
Angry Birds Seasons HD
Angry Birds Seasons Free

Leftover text from the iOS versions.

Edit

Remnants of an internal level editor?

Unused Birds

BomBom

Angry Birds Seasons BomBom sprites.png

An unused bird from version 1.6.0. This birds ability is similar to the Blues, splitting into 3 when used, however they explode when touching an object. BomBom uses sounds from the Blues as a placeholder.

Debugging Functions

Just like past Angry Birds games built with Lua, debugging functions are mentioned in certain Lua scripts and some are named that way.

Debugging Info in Credits

Like almost any Angry Birds game built with Lua, the credits page often shows debugging info: the Cloud data URL is shown as well as the customerString.

Developer Cheats

Hmmm...
To do:
Test the cheat keys on PC.

If developer cheats are on in build settings, it will be possible to use developer cheats, there's also key-based cheats and this game has a LOT:

Main Menu:

  • Cheat FTE!: Cheats first time experience, FTE means First Time Experience.
  • Facebook Login Details: Shows whether you are logged or not and what account name if so with Logged in as: XXX X. (full first name and first letter of last) as a sample, in the top right corner.

Powerup Shop:

  • Empty buttons: Gives the user the purchase without actual payment, this appears on Special Offers, Shockwave+Telebird page, Powerup page in the corners and Mighty Eagle page in the middle.
  • Downgrade: Allows the user to downgrade Shockwave or Telebird by one level.

Hats:

  • Empty button: Gives the user all hats for each bird for the collection for the session, can toggle back to legal ownership by current save data.

Challenges:

  • Empty buttons: Grants the user the challenge to be successful without any proper actions.

Progress:

  • Empty buttons: Grants the user the episode challenge to be successful without any proper actions.

Coin Shop:

  • Empty button 1: Grants the user 5000 coins (top left corner of popup and removes ADS?).
  • Empty button 2: Grants the user the opportunity to get the free Sling Scope for 10 min by watching an AD (bottom middle), a popup for the offer of activating the Sling Scope for 10 minutes for an AD watched is called and clicking ACTIVATE! displays a message going by: No videos available!!! Since this is a cheat build, will enable Sling Scope offer anyways. if no ads are present, otherwise forces an AD to be watched for one.

In-game:

  • Instant Win: Touching the bottom left corner (even if the powerup icon is overtop) multiple times will instantly beat the level with approximately the amount for a 3-star score.

Elsewhere:

  • AD watch simulation: Allows the user to simulate watching ADs offline or when none are present while not actually watching one and immediately getting the rewards.
  • All levels unlocked (no golden eggs): Unlocks all levels on every boot, for a session, not a save.
  • Call debug console: If the game is responding, it's possible to call the debug console. Touching near the bottom right corner two times will call it, scrolling is still buggy like the PC version and scrolling to an empty area will crash the game.

Cheat keys

Hmmm...
To do:
There is in gamelogic.lua and debugUtils.lua file located only scripts or scripts_common folders? add them.

In-game:

  • C = Simulates a three star completion, ignoring the current score and using a predetermined score, the same way for using it on mobile releases (Left corner multi click) is also a method to load on the PC version.
  • PgUp = Previous level.
  • PgDown = Next level, ignores level lock restrictions.

Elsewhere

  • Backspace-Q/W/E/R/T/Y/U = Crashes the game, attempts to call powerup bundles while PC version doesn't enable them or have the files.
  • Ctrl-Alt-# = "#" can be 1 (English), 2 (French), 3 (Italian), 4 (German), 5 (Spanish), 6 (Chinese), 7 (Taiwanese), 8 (Japanese), 9 (Portuguese) or 0 (Polish). Attempts to change the text locale, setting an unexisting locale other than Japanese or English crashes the game...
  • S = Toggle sounds on or off.
  • Ctrl-F5 = Attempts to create an Lua file containing the layout of a screen, crashes due to the folder layouts in the game data directory does not exist, manually creating it fixes the function to make a plaintext file.
  • Shift-F12: Toggles mouse cursor visibility.
  • Shift-C: Enables IAPs (doesn't work).
  • Shift-Z: Powerup bundle reward (Crashes due to power-up is disabled).
  • Shift-X: Powerup slot machine (Crashes due to power-up is disabled).
  • F: Toggles visibility of the FPS and memory display.

Unused Sounds

Wilhelm_scream_echo_02

The "Wilhelm Scream", with an echo.

Version Differences

  • Logs from mobile and 2.2.0-4.1.0 version are not included

Version 1.5.1

Unknown release of PC version as Nokia (Known image were cropped as HD splashes).

Version 2.0.0

This official build was released by Rovio after the Coming Soon! sign was removed.

Version 2.1.0

Improved quality of sounds and music.

Level Editor

There's a call for loading the level editor (1.1.0-1.2.1 still loads non-empty levels after encrypted and/or compiled lua but 2.5.0 and 4.1.0 still work), but 1.3.0-2.4.1 levels was empty after encrypted and/or compiled lua, the original files aren't present on public releases of v2.5.0+

Developer Leftovers

Uncompiled Backup Scripts

Hmmm...
To do:
Should this go in the Lua namespace?

Six backup scripts of gamelogic.lua are present in 1.4.0 specifically for the iPad release with a .bak* extension for each revision, free of encryption. Unlike the original script, these ones are completely uncompiled, providing comments you wouldn't see in the original. The first three and fifth are identical while the 4th and 6th are different to the before but identical to each other.


(Source: AB Modding Hub: It's Going To Be About Pirate#7201)

Unknown JSON File

The file, config.json is present in v3.1.1 for Android and automatically "cooked" for the game but the file has no references. Unlike the file in Classic, it has build information, most likely from a internal build tool.

{
    "additionalPermissions": [], 
    "appName": "Angry Birds", 
    "archs": [
        "arm", 
        "armv7", 
        "x32"
    ], 
    "buildDate": "2012-12-07", 
    "buildStartedBy": "", 
    "compatibleScreens": [], 
    "compileLua": true, 
    "compressLua": true, 
    "copyAssets": [
        [
            "game/config.lua", 
            ""
        ], 
        [
            "game/data_src/levels", 
            "data"
        ], 
        [
            "game/data_src/localization", 
            "data"
        ], 
        [
            "game/data_src/localization_android", 
            "data"
        ], 
        [
            "game/data_src/scripts", 
            "data"
        ], 
        [
            "common/scripts/game/**", 
            "data/scripts_common"
        ], 
        [
            "game/data_src/images/320x240_android", 
            "data/images"
        ], 
        [
            "game/data_src/images/480x320_android", 
            "data/images"
        ], 
        [
            "game/data_src/images/864x480", 
            "data/images"
        ], 
        [
            "game/data_src/images/960x640_android", 
            "data/images"
        ], 
        [
            "game/data_src/fonts/320x240", 
            "data/fonts"
        ], 
        [
            "game/data_src/fonts/480x320", 
            "data/fonts"
        ], 
        [
            "game/data_src/fonts/864x480", 
            "data/fonts"
        ], 
        [
            "game/data_src/audio/16000hz-16bit-mono-mp3/**", 
            "data/audio"
        ], 
        [
            "external/Fusion/data/shaders/gles2", 
            "data"
        ]
    ], 
    "copyExcludes": [
        "game/data_src/levels/packLite", 
        "game/data_src/levels/roku", 
        "game/data_src/levels/pack1[89]", 
        "game/data_src/levels/pack[2-9][0-9]"
    ], 
    "copyPatterns": [
        [
            "build/android/res/**", 
            "res"
        ]
    ], 
    "copyTo": "p:/RovioMobile/AngryBirds Seasons/Software/Android/2012-12-07_3.1.1_(8934)_androidmarket", 
    "customLuaOptions": {
        "gamelua.applyChinaRestictions": false, 
        "gamelua.bingIsEnabled": false, 
        "gamelua.cheatsEnabled": false, 
        "gamelua.customerString": "'androidmarket'", 
        "gamelua.disableShopButton": false, 
        "gamelua.enableAssertions": false, 
        "gamelua.g_hasWebBrowser": true, 
        "gamelua.g_is_free_version": false, 
        "gamelua.g_registrationEnabled": false, 
        "gamelua.g_updateCheckEnabled": false, 
        "gamelua.gameId": "'abs'", 
        "gamelua.gameVersionNumber": "'3.1.1'", 
        "gamelua.isKorea": false, 
        "gamelua.isPremium": false, 
        "gamelua.releaseBuild": true, 
        "gamelua.showEditor": false, 
        "gamelua.svnRevisionNumber": "'8934'", 
        "gamelua.timeMachineServer": "'dev'", 
        "gamelua.useDynamicAssets": true
    }, 
    "customScripts": {
        "assetFilter": "update_level_filenames.py"
    }, 
    "customer": "androidmarket", 
    "debug": false, 
    "defines": [
        "CRYPTED_LUA_FILES", 
        "ZIPPED_LUA_FILES", 
        "USE_PRODUCTION_ADS"
    ], 
    "dirSuffix": "", 
    "encryptLua": true, 
    "encryptionKey": "__SECRET__", 
    "externalModules": [], 
    "failOnConfigurationWarnings": true, 
    "fusionDefines": [], 
    "includeDirs": [
        "../../source", 
        "../../external/Fusion/include", 
        "../../common/dependencies/box2d/Box2D", 
        "../../common/source/"
    ], 
    "jobs": 8, 
    "keyAlias": "__SECRET__", 
    "keyAliasPassword": "__SECRET__", 
    "keyStore": "__SECRET__", 
    "keyStorePassword": "__SECRET__", 
    "luaOptionsFile": "data/scripts/options.lua", 
    "minSdkVersion": "8", 
    "modules": [
        "flurry", 
        "framework", 
        "grgles1", 
        "grgles2", 
        "game", 
        "gr", 
        "hgr", 
        "img", 
        "io", 
        "lua", 
        "net", 
        "pf", 
        "util", 
        "audio", 
        "math", 
        "lang", 
        "ads"
    ], 
    "obfuscate": true, 
    "outputName": "AngryBirdsSeasons_3.1.1_androidmarket_DISTRIBUTION", 
    "packageName": "angrybirdsseasons", 
    "platform": "android", 
    "projectName": "AngryBirdsSeasons", 
    "releasePackage": true, 
    "sourceExcludes": [
        "../../common/source/AppUpWrapper*", 
        "../../common/source/Nook*", 
        "../../common/source/RovioAccount*", 
        "../../common/source/AdMob*", 
        "../../common/source/Cloud*", 
        "../../common/source/GamerServ*"
    ], 
    "sourceFiles": [
        "../../source/**.cpp", 
        "../../common/source/*.cpp"
    ], 
    "subDir": "gen", 
    "svnRevision": "8934", 
    "targetPrefix": "android-", 
    "targetSdkVersion": "13", 
    "verbosity": 1, 
    "versionCode": "3101", 
    "versionString": "3.1.1"
}

Java Source Backup

v1.1.0 for Android left a file called MySurfaceView.java.bak in com/rovio/ka3d, a leftover folder at the root. It seems it's from a proprietary version of the Ka3D engine. App compilation dates suggest it's around December 12 of 2010.

package com.rovio.ka3d;

import android.content.Context;
import android.util.Log;
import android.view.MotionEvent;

public class MySurfaceView extends GLSurfaceView
{
    public MySurfaceView(Context context)
    {
    	super(context);
    	setEGLConfigChooser( false );
    	m_renderer = new MyRenderer(context);
    	setRenderer(m_renderer);
    	
    	try
        {
    		// Create multi-touch input if supported
    		m_inputDelegator = new MultiTouchInputDelegator(m_renderer);
        }
        catch(Throwable e)
        {
        	// Create single-touch input if supported
        	m_inputDelegator = new SingleTouchInputDelegator(m_renderer);
        } 
    }
    
    public boolean onTouchEvent(final MotionEvent event)
    {	
    	return m_inputDelegator.onTouchEvent(event);
    }
    
    public InputDelegator	m_inputDelegator;
    public MyRenderer		m_renderer;
}

Compilation Scripts

The Chinese version left two scripts from internal development, they try to call a external Python tool, the .sh is likely for extra developers on Linux.

updateQuestTargetLevels.bat:

Old revision:

..\..\..\..\external\Fusion\buildtool\tools\python-2.6.6-win-x86\python ..\..\..\..\tools\CloudAssetPacker\bin\quests.py refreshSeekAndDestroyLevels
pause

New:

python ..\..\..\..\tools\pythontools\quests.py refreshSeekAndDestroyLevels
pause

updateQuestTargetLevels.sh

python ../../../../tools/pythontools/quests.py refreshSeekAndDestroyLevels

Internal Project Name

The internal name of the game is Linnut Halloween, Linnut is roughly translated to Birds while Halloween is self-explanatory (with or without Rovio and/or Angry), according to the build path of older releases of the game. [1] [2]

  1. /Users/miika/Documents/Rovio_Linnut_Halloween/build/iphone/build/Rovio_Linnut.build (1.0.0 iPhone)
  2. /Users/bserve/Applications/Hudson/home/jobs/AngryBirdsSeasonsFree-iphone/workspace/Rovio_AngryBirdsSeasons/build/iphone/build/Rovio_Linnut.build/Distribution-iphoneos/Rovio_Linnut_Halloween_Lite.build (1.4.0 iPhone Free)