|
|
To do: |
Garfield: A Tail of Two Kitties is your standard movie tie-in game that happens to be developed by the same company that developed Toki Tori.
levels_test.dat#
As you might guessed from the name, it's a test level. There are 7 Maps that use this: collisionPropertyTest, collisionTest, eventObjectsTest, firstPlayable, platformTest, cameraRigTest, and cameraSwoopTest.
Error Messages#
When the game gets an error, it will show this message:
When the game gets a error when reading data on start, it will show this message:
Config XMLs#
The xml files contains a bunch of dev comments.
debug.xml#
Contains things for debugging purposes.
garfield.xml#
<!-- Sound
max - if mic levels are above this, garfield will make some noise ( 0-256 )
trigger_delay - number of ms after which a trigger sound sends its signal.
-->
<!-- Move params - all in units/frame
maxspeed - maximum speed ( speeds is clamp to this number. )
idle_limit - speed when idle animation kicks in
tilt_speed - the speed with how fast garfield tilts, in degrees per frame. ( 0 - 180 )
turn_speed - the speed with how fast garfield turns, in degrees per frame. ( 0 - 180 )
lookahead_scale -
bounce_min - the minimum bounce speed
air_turn_multiplier - when pressing in the opposite direction of the movement; the air acceleration is multiplied with this value.
NOTE: floating point is ok here, for now.
Smallest value representable is 1/4096
- -->
<!-- Firstperson cam params
head_yoff - Y distance from model center to eye height
head_eye - when entering firstperson, camera eye wants to be
this many units behind the current pos
head_tgt - when entering firstperson, camera target wants to be
this many units in front of the current pos
look_eyedistance - distance between scenedefined firstperson
cam eye pos and actual game camera eye pos.
In "cat terms", distance from the center of the head
and to the eyes.
zoom_delay - milliseconds to wait before the zoom 'clicks'
in on an object
zoom_distance - the worldspace distance the eye is moved when a
"See" node is activated
eyes_scale - scale applied to eye ortho model
eyes_open_speed - speed constant applied to eye opening
eyes_close_speed - speed constant applied to eye closing
zoomin_turnspeed - angular offset used to turn Garfield
in the direction of the firstperson lookmode
-->
<!-- Jumping params
length_frames - number of frames jumping continues to add a force.
check_delay - number of frames after leaving the ground jumping can still be triggered.
jump_delay - number of frames the jump animation is played but garfield isn't moved up. (to have a to_jump animation.)
switch_jumpanim - switch to fall anim when closest ground is N units away
(to make this switch when fall starts, set very high.
multi_jump - Turn multi jumping on or off ( 0 - 1 )
jump_max_tilt - Maximum rotation during a jump in degrees (0-90)
prejump - If the jump button was (released and) pressed this number of frames before hitting the ground.
Garfield will hit the ground if the jump button is still pressed when hitting the ground.
-->
<!-- Controls
can be A, B, X, Y, SELECT, START, L, R
-->
<!-- Health params
max - maximum amount of health garfield can have.
hurt - Amount of health points hurt removes.
invulnerable_time - Number of ms garfield is invulnerable after being hurt.
-->
<!-- Water params
kill_depth - if Garfield is lower then this value below water he is killed.
-->
<!-- Give Garfield an extra boost at the end of a grab. wall.
x_boost - the boost in the horizontal direction
y_boost - the boost in the vertical direction
x_move - move away from the corner in the horizontal direction.
y_move - move away from the corner in the vertical direction.
-->
<!-- Material movement configuration
walk_angle - max angle at which Garfield can still walk with out starting to slide. ( INT 0-180 ) ( good choice would be 45 )
fall_angle - the angle at which Garfield can no longer hold on to a surface and starts to fall. ( INT 0 - 180 ) ( good choice would be 90 )
NOTE: fall_angle _must_ be <= walk_angle.
-->
<!-- Collision parameters
Handle with /extreme/ care!!!
collradius
radius of collision sphere (orig=0.10)
tracelength
length of "look" vector, tracing polygon face data (orig=0.15)
NEVER modify this value in such a way that it is less than collradius
anim_yoffset
how much along the down vector the animation is placed (orig=0.095)
container_radius
the size of the sphere used to Find closeby collision nodes.
NEVER modify this value in such a way that it is less than tracelength
-->
<!-- Experimental vals
- Using these prevents Garfield to stick his head
through geometry, as it enlarges the collision sphere, as well as moves
the model further down inside it.
-->
<!-- <collision -->
<!-- collradius="0.27" -->
<!-- tracelength="0.32" -->
<!-- container_radius="2" -->
<!-- anim_yoffset="0.22"/> -->
gui.xml#
<!--
look_pawicon_alpha (int) 0..15 alpha value of "look" icon
pathicon_fadein (float) path icon fadein delta (1 = opaque)
pathicon_fadeout (float) path icon fadeout delta (1 = opaque)
pathicon_clamp_notidle (int) 0..15 max alpha value when not standing
still in path selector
-->
<!-- hurt_anim move sprite when hurt
y_offset speed is the amount of pixels the sprite is moved each frame.
y_offset max is the maximum offset the sprite gets in pixels
-->
<!-- sound_anim move sprite when in sound trigger
y_offset speed is the amount of pixels the sprite is moved each frame.
y_offset max is the maximum offset the sprite gets in pixels
-->
<!-- Where to place icons on subscreen -->
<!-- Configure the pickup eat event
movement_time
how many milliseconds to move pickup icon up and down.
NOTE: should be power of two to match sinus period
movement_speed
amount of bitshifts left applied to time delta before
passing to sinus func
movement_delta
the amount of pixels the icon is allowed to move during
an "eat" event
-->
menu.xml#
<!-- for backwards compatibility for our backward designer(build) -->
<!-- Available animations
Enter / resume anims:
RotateIn (direction: Left/Right/Bottom/Top, speed)
SlideIn (direction: Left/Right/Bottom/Top/LeftBottom/RightBottom, speed, jiggle)
ZoomIn (speed)
Exit / pause anims:
Fall (direction: Left/Right/Bottom/Top, speed)
RotateOut (direction: Left/Right/Bottom/Top, speed)
SlideOut (direction: Left/Right/Bottom/Top/LeftBottom/RightBottom, speed, jiggle)
ZoomOut (speed)
Pressed / Clicked anims:
Small (speed, size)
SizeFlash (speed, size)
Idle Anims:
Wobble (speed, size)
-->
<!-- image to use as background -->
<!-- image to display on top screen-->
<!-- located in res/audio/menu/ -->
<!-- fade speed 0-32 -->
<!-- 0-256 -->
sceneparams.xml#
<!-- Path configuration
hardcode
enable camera locked to player spline
moveto_snap
When the distance between current and wanted eye is less than this
threshold value, current pos := wanted pos.
moveto_speed
delta step for camera. When the distance of the vector
between the cameras current position and its wanted position is larger
than 'moveto_snap', the current position will move towards the wanted
position along the vector ((wanted-current)*moveto_speed).
moveto_firstperson_speed
same as moveto_speed, but applied only in firstperson mode
moveto_firstperson_speedclamp
the maximum moveto step size when in firstperson mode
adjust this to avoid dramatic changes in camera move
NOTE!!!!! Not used!
tangentdelta
value passed to the engine path constraint controller, used for
smoothing the paths
-->
<!-- Default color bg NOTE: these are RGB555-->
<!-- 0 = off
1 = on (OOBB)
2 = on (AABB) -->
<!-- position of button in pixels from left border -->
<!-- position of button in pixels from top border -->
<!-- width of button in pixels -->
<!-- height of button in pixels -->
<!-- texture as specified in bcc file -->
<!-- as specified in localization xls -->
<!-- Center, Left, Right -->
scenes.xml#
<!-- work in progress! Do not edit -->
This message is the final game, so the game technically unfinished
<!--
Debug and test levels
-->
<!-- Collision property test level -->
<scenedef name="collisionPropertyTest">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
<!-- Collision test -->
<scenedef name="collisionTest">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
<!-- Event objects test -->
<scenedef name="eventObjectsTest">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
<!-- First playable -->
<scenedef name="firstPlayable">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
<!-- platformTest -->
<scenedef name="platformTest">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
<!-- test new camera rig -->
<scenedef name="cameraRigTest">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
<!-- test new camera rig -->
<scenedef name="cameraSwoopTest">
<datfile>levels_test.dat</datfile>
<ingame>false</ingame>
<sound>
<background_music>watertower.xm</background_music>
<sfxset>testlevel</sfxset>
<songset>watertower</songset>
<sfx_volume>256</sfx_volume> <!-- 0-256 -->
<music_volume>128</music_volume> <!-- 0-256 -->
</sound>
<subscreen>
<goalsprite>GoalIcon2</goalsprite>
<bgmap>Topscreen_BG</bgmap>
<fgmap>Topscreen_Garfield</fgmap>
</subscreen>
<clipping>
<event_objects>20</event_objects>
</clipping>
</scenedef>
Test Maps
splash.xml#
<!-- Remove comments for E3 build -->
Regional Differences#
Title Screen#
|
North America |
Europe |
|---|---|
|
|
|
|
The Garfield series | |
|---|---|
|
NES |
|
|
Game Boy |
|
|
Genesis |
|
|
Game Gear |
|
|
Windows |
Caught in the Act • Mad About Cats • Garfield • Garfield 2 • Lasagna World Tour • Threat of the Space Lasagna • Garfield Kart: Furious Racing • Lasagna Party • Garfield Kart 2: All You Can Drift |
|
Adobe Flash |
Sheep Shot • Scary Scavenger Hunt • Hairball Hack • Krazy Kennel Breakout! |
|
Game Boy Advance |
|
|
Nintendo DS |
Garfield's Nightmare • Garfield Gets Real • Garfield's Fun Fest • A Tail of Two Kitties |
|
Nintendo 3DS |
|
|
PlayStation 2 |
|
|
Wii |
|
|
PlayStation 4, Xbox One, Nintendo Switch |
|
|
PlayStation 5, Xbox Series X |
|
|
See Also | |