We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Where's My Water? (iOS, Android)

From The Cutting Room Floor
Jump to navigation Jump to search

Click to upload a new image...Dummy link

Where's My Water? (iOS, Android)

Developer: Creature Feep
Publishers: The Walt Disney Company, Disney Mobile
Platforms: iOS, Android, Adobe Flash
Released internationally: September 22, 2011

CodeIcon.png This game has unused code.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
DebugIcon.png This game has debugging material.

Where's My Water? is a puzzler from Disney that made use of water physics. Spinoffs based on Phineas and Ferb, as well as Paul Rudish's Mickey Mouse incarnation, came after.

Leftover Where's My Perry? Assets

There's a portion of assets from that game leftover in the game files.

Debugging Content

Many files mention such debugging functions, they include in-game language changing, IAP simulations, changing texture quality (Android) and showing the version on main menu (in v1's menu).

Achievement Viewer

To do:
Find the screen ID as of v2's menu.

The file SM_MainMenu in the Data directory, mentions a button named Achieve Test to press to load it, it allows viewing and earning of any achievement present in the game files, v2 of the main menu in the full game has it stripped it out, but the game still has the file to describe it existing, changing the position will make it visible on page 2, the ID is unknown and not noted in the file, making it impossible to load the screen using the button unless it is found.

Animation Viewer

The file SM_MainMenu in the Data directory, mentions an ID of 5, going by WN_ANIMATION_TEST and a button named Animations to press to load it, it allows testing and viewing of any animation present in the game files, it doesn't work in the final Free version and will crash the game while loading, the V2 version of the main menu in the full game has it but under an ID of 99999, despite the ID change, the function still works fine if position adjustments were made to show it or at least one special level is completed to allow scrolling after making the function button visible.

Level Editor

Images are present to prove one exists and the level select mentions it with an ID of 99 as WN_EditorToggle, given by the name it would load the editor.

Level Documentation

The Levels directory has a text document from the developers of the game called _level_properties_doc.txt, on creating levels for the game, this is still present as of the final Free version and final paid version.

Quick and dirty list of properties and values you can use when editing Water levels


>> "Interactive" (0 or 1)
	When enabled, this object can receive touch events from the player's finger(s).  Usually you
	don't need to change this in a level, it's authored already for you in the object file.
>> "VelDamping" (float, default 0.99)
	Changes how much "drag" this object has when it falls due to gravity.  lower numbers mean more drag.
	generally you'll want to leave this alone.
>> "OmegaDamping" (float, default 0.99(
	Changes how much an object's "spin" dampens over time.  similar to VelDamping.

>> "Draggable" (0 or 1)
	When enabled, this lets the object be dragged around by the player's finger.
>> "GravityScale" (float, default 0)
	Set this to 1.0 if you want the object to fall because of gravity.  Default is to NOT fall at 
	all (static).
>> "Parent" (string)
	Set this to the name of another object in the scene to make this object a "child" of the other object.
	This will cause this object to be "locked" to it's parent, and move along with it whenever the parent moves.


>> "PinOffset" (Vector2 in GRID SPACES from the center of the object)
	Sets where on the object it will be "pinned" to the world, making a hinge.
	If this property exists, the pin will be created.

>> "PinMinAngle" (float)
	Set this to the minimum angle (relative to the start at the beginning of the level)
	that you want the hinge to rotate.  if it's unset, there is no limit at all.

>> "PinMaxAngle" (float)
	Same as min, but for max (other side).


>> "PathPosX" (replace "X" with numbers, starting from 0 and counting up, such as
				"PathPos0", "PathPos1", etc)
	Defines points in the path that will constrain the object.  position values are represented
	in GRID UNIT space, by default RELATIVE to the object's position (as in the object's position is 0,0).
	If you want to define a path in WORLD space, use "PathIsGlobal" setting below)

>> "PathIsClosed" (0 or 1)
	When enabled, the path will become a closed loop, automatically connecting the last and first points.

>> "PathIsGlobal" (0 or 1)
	Enable to signify that the path is in GLOBAL GRID spaces, not relative to the object's center 
	(which is the default).


Motors allow objects to move along their path contraint.  Objects can optionally pause at vertices along 
the path.

>> "MotorMoveSpeed" or "MotorMoveSpeedX" (float, default 1.0)
	Sets how fast the object will move along the path.  "MotorMoveSpeed" by itself sets the speed for the 
	entire path	at once… "MotorMoveSpeedX" (replace "X" with a number starting with 0) sets the speed for 
	a specific section of the path, with the first section being 0, and counting up from there.

>> "MotorWaitTime" or "MotorWaitTimeX" (float, default 0.0)
	Sets how long the object should pause at vertices in the path.  "MotorWaitTime" by itself sets the 
	same value for each	vertice, the numbered versions set the wait time for that specific section of the path.

>> "MotorTurnSpeed" or "MotorTurnSpeedX" (float, default 0.0)
	Sets how fast the object should spin (in DEGREES/SECOND) as it moves along the path.  Again, the 
	version with no number sets a global value for all sections, and the numbered versions set values 
	for that specific section of path.

>> "MotorWaitTurn" or "MotorWaitTurnX" (float, default 0.0)
	Sets how many DEGREES the object should turn during the "wait" at each vertex in the path.  globals 
	and specific settings follow same convention as above settings.
>> "MotorOn" (0 or 1, default 0)i
	Set to 1 to have the object animating from the beginning of the level… otherwise it will only animate 
	if connected to a switch.
>> "MotorPingPong" (0 or 1, default 0)
	Set to 1 to cause the object to "ping pong" back and forth along the path, reversing its direction 
	when it reaches the end of the path.


>> "SpoutType" (string, default "OpenSpout")
		"OpenSpout" - spout that creates fluid normally
		"TouchSpout" - spout that creates fluid when touched by the player's finger
		"Drain" - acts as a drain
		"DrainSpout" - acts as both a drain and a spout (?!?)

>> "FluidType" (string, default "Water")
	Sets what type of fluid this spout will create.  Possible values are:
	"Lava" (ooze)

>> "ExpulsionAngle" (float, default 0.0)
	Sets the angle that the fluid will shoot out of the spout.  NORMALLY you don't need to adjust this.

>> "ExpulsionAngleVariation" (float in DEGREES, default 0.0f)
	Sets how much variation (in DEGREES) that the spout will have in the angle that fluid shoots out at.

>> "ParticleSpeed" (float)
	How fast should the particles shoot out?

>> "OffsetToMouth" (Vector2 in GRID UNITS)
	Sets where the fluid will be created, relative to the center of the object.  You shouldn't need to change
	this in a level, it's set in the object file.
>> "OffsetVariation" (float)
	Sets how much variation in the spawn point for fluid there can be.  larger numbers mean a larger area at
	which the fluid can be spawned.

>> "NumberParticles" (integer)
	How many particles this spout should create.  set to -1 for infinite.

>> "TimerX" (2 numbers, integer and float --  first # 1 or 0, second number is float)
	Sets a timer on the spout (starting with "Timer0" and counting up.  Each timer sets the spout to either 
	ON (1) or OFF (0), and sets how long that status should remain.  Commands loop once the last timer has
	expired.  For example, to make a spout that shoots fluid for 3 seconds, then stops for 2 seconds, and then 
	repeats, you would have this:
		<Property name="Timer0" value="1 3.0" />
		<Property name="Timer1" value="0 2.0" />

>> "ParticlesPerSecond" (float)
	Sets how frequently particles are created.

>> "Limit" (int)
	Sets the maximum number of particles that this DRAIN will allow to pass through.


>> "BlastRadius" (float in GRID CELL units)
	How big is the blast radius?

>> "BlastPower" (float, default 4000)
	How powerful is the explosion (how forcefully will fluids be pushed away from the bomb
	when it explodes?


>> "SwitchType" (string, default "Flip")
	Sets switch type:
	"Flip" -> standard switch, water touches it and it is now ON for good.
	"Momentary" -> temporary switch, only ON WHILE water is touching it.. water stops touching, it turns OFF.

Unused text

String ID English Note
Cheat Code
An entry for entering a cheat code. A mention for such a function exists but not the text string exists in the game executable.

Present in Script is the text file that keeps all the game's text, WC.txt, likely standing for WaterConcept according to executable code. Oddly other languages have some of the unused text quoted with stars.

Revisional Differences

Many builds were produced, even one exclusive to T-Mobile users.