Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslm <jtmengel@gmail.com>2010-08-05 18:21:45 (GMT)
committer slm <jtmengel@gmail.com>2010-08-05 18:21:45 (GMT)
commit725c625e6f129e7972177483b59295e9e3d8b0a9 (patch)
tree0e7c72bb56b5695acc7faeac18b5af9ca64f0dec
parent04334feb88aa124afca62dec8f4f742539c90e3e (diff)
Added files which I had previously forgotten to add
-rw-r--r--MAFH2/fortuneengine/Scene.py~193
-rwxr-xr-xanim/Animation Styles/AnimatedSprite.py141
-rwxr-xr-xanim/Animation Styles/AnimatedSpriteTest.py317
-rw-r--r--anim/Animation Styles/AnimatedSpriteTest.py~289
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/bmp16/Buttons.bmpbin0 -> 57656 bytes
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/bmp16/text.txt2
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/bmp24/Buttons.bmpbin0 -> 86456 bytes
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/bmp24/text.txt2
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/gif/Buttons.gifbin0 -> 4053 bytes
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/gif/text.txt2
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/gift/Buttons.gifbin0 -> 2722 bytes
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/gift/text.txt2
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/png/Buttons.pngbin0 -> 5786 bytes
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/png/text.txt2
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/pngt/Buttons.pngbin0 -> 6542 bytes
-rwxr-xr-xanim/Animation Styles/AnimationPerLine/pngt/text.txt2
-rwxr-xr-xanim/Animation Styles/Buttons.psdbin0 -> 88230 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/1.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/2.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/3.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/4.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/5.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/6.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/7.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/8.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a1/9.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/1.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/2.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/3.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/4.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/5.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/6.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/7.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/8.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp16/a2/9.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/1.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/2.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/3.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/4.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/5.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/6.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/7.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/8.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a1/9.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/1.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/2.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/3.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/4.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/5.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/6.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/7.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/8.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/bmp24/a2/9.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/1.gifbin0 -> 259 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/2.gifbin0 -> 411 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/3.gifbin0 -> 334 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/4.gifbin0 -> 272 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/5.gifbin0 -> 314 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/6.gifbin0 -> 282 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/7.gifbin0 -> 344 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/8.gifbin0 -> 400 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a1/9.gifbin0 -> 388 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/1.gifbin0 -> 259 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/2.gifbin0 -> 411 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/3.gifbin0 -> 334 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/4.gifbin0 -> 272 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/5.gifbin0 -> 314 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/6.gifbin0 -> 282 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/7.gifbin0 -> 344 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/8.gifbin0 -> 400 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gif/a2/9.gifbin0 -> 388 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/1.gifbin0 -> 207 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/2.gifbin0 -> 316 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/3.gifbin0 -> 297 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/4.gifbin0 -> 241 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/5.gifbin0 -> 250 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/6.gifbin0 -> 233 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/7.gifbin0 -> 228 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/8.gifbin0 -> 258 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a1/9.gifbin0 -> 304 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/1.gifbin0 -> 207 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/2.gifbin0 -> 316 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/3.gifbin0 -> 297 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/4.gifbin0 -> 241 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/5.gifbin0 -> 250 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/6.gifbin0 -> 233 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/7.gifbin0 -> 228 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/8.gifbin0 -> 258 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/gift/a2/9.gifbin0 -> 304 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/1.pngbin0 -> 3012 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/2.pngbin0 -> 3215 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/3.pngbin0 -> 3115 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/4.pngbin0 -> 3055 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/5.pngbin0 -> 3124 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/6.pngbin0 -> 3111 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/7.pngbin0 -> 3247 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/8.pngbin0 -> 3230 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a1/9.pngbin0 -> 3270 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/1.pngbin0 -> 3013 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/2.pngbin0 -> 3227 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/3.pngbin0 -> 3116 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/4.pngbin0 -> 3056 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/5.pngbin0 -> 3134 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/6.pngbin0 -> 3112 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/7.pngbin0 -> 3246 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/8.pngbin0 -> 3237 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/png/a2/9.pngbin0 -> 3273 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/1.pngbin0 -> 3049 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/2.pngbin0 -> 3356 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/3.pngbin0 -> 3178 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/4.pngbin0 -> 3095 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/5.pngbin0 -> 3234 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/6.pngbin0 -> 3177 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/7.pngbin0 -> 3092 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/8.pngbin0 -> 3171 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a1/9.pngbin0 -> 3195 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/1.pngbin0 -> 3035 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/2.pngbin0 -> 3353 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/3.pngbin0 -> 3178 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/4.pngbin0 -> 3081 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/5.pngbin0 -> 3235 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/6.pngbin0 -> 3174 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/7.pngbin0 -> 3074 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/8.pngbin0 -> 3174 bytes
-rwxr-xr-xanim/Animation Styles/IndividualFrames/pngt/a2/9.pngbin0 -> 3177 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/bmp16/1.bmpbin0 -> 28856 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/bmp16/2.bmpbin0 -> 28856 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/bmp16/text.txt2
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/bmp24/1.bmpbin0 -> 43256 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/bmp24/2.bmpbin0 -> 43256 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/bmp24/text.txt2
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/gif/1.gifbin0 -> 1883 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/gif/2.gifbin0 -> 1883 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/gif/text.txt2
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/gift/1.gifbin0 -> 1162 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/gift/2.gifbin0 -> 1388 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/gift/text.txt2
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/png/1.pngbin0 -> 4317 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/png/2.pngbin0 -> 4342 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/png/text.txt2
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/pngt/1.pngbin0 -> 4164 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/pngt/2.pngbin0 -> 5185 bytes
-rwxr-xr-xanim/Animation Styles/OneSheetPerAnimation/pngt/text.txt2
-rwxr-xr-xanim/DrawableObjectTests/AnimatedSprite.py140
-rwxr-xr-xanim/DrawableObjectTests/Buttons.psdbin0 -> 88230 bytes
-rwxr-xr-xanim/DrawableObjectTests/DrawableObject.py156
-rwxr-xr-xanim/DrawableObjectTests/DrawableObjectMoveScaleTest.py102
-rwxr-xr-xanim/DrawableObjectTests/DynamicDrawableObject.py89
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/1.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/2.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/3.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/4.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/5.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/6.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/7.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/8.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a1/9.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/1.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/2.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/3.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/4.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/5.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/6.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/7.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/8.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp16/a2/9.bmpbin0 -> 3256 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/1.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/2.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/3.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/4.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/5.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/6.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/7.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/8.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a1/9.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/1.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/2.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/3.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/4.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/5.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/6.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/7.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/8.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/bmp24/a2/9.bmpbin0 -> 4856 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/1.gifbin0 -> 259 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/2.gifbin0 -> 411 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/3.gifbin0 -> 334 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/4.gifbin0 -> 272 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/5.gifbin0 -> 314 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/6.gifbin0 -> 282 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/7.gifbin0 -> 344 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/8.gifbin0 -> 400 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a1/9.gifbin0 -> 388 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/1.gifbin0 -> 259 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/2.gifbin0 -> 411 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/3.gifbin0 -> 334 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/4.gifbin0 -> 272 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/5.gifbin0 -> 314 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/6.gifbin0 -> 282 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/7.gifbin0 -> 344 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/8.gifbin0 -> 400 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gif/a2/9.gifbin0 -> 388 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/1.gifbin0 -> 207 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/2.gifbin0 -> 316 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/3.gifbin0 -> 297 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/4.gifbin0 -> 241 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/5.gifbin0 -> 250 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/6.gifbin0 -> 233 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/7.gifbin0 -> 228 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/8.gifbin0 -> 258 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a1/9.gifbin0 -> 304 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/1.gifbin0 -> 207 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/2.gifbin0 -> 316 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/3.gifbin0 -> 297 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/4.gifbin0 -> 241 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/5.gifbin0 -> 250 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/6.gifbin0 -> 233 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/7.gifbin0 -> 228 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/8.gifbin0 -> 258 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/gift/a2/9.gifbin0 -> 304 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/1.pngbin0 -> 3012 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/2.pngbin0 -> 3215 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/3.pngbin0 -> 3115 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/4.pngbin0 -> 3055 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/5.pngbin0 -> 3124 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/6.pngbin0 -> 3111 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/7.pngbin0 -> 3247 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/8.pngbin0 -> 3230 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a1/9.pngbin0 -> 3270 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/1.pngbin0 -> 3013 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/2.pngbin0 -> 3227 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/3.pngbin0 -> 3116 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/4.pngbin0 -> 3056 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/5.pngbin0 -> 3134 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/6.pngbin0 -> 3112 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/7.pngbin0 -> 3246 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/8.pngbin0 -> 3237 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/png/a2/9.pngbin0 -> 3273 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/1.pngbin0 -> 3049 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/2.pngbin0 -> 3356 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/3.pngbin0 -> 3178 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/4.pngbin0 -> 3095 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/5.pngbin0 -> 3234 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/6.pngbin0 -> 3177 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/7.pngbin0 -> 3092 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/8.pngbin0 -> 3171 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a1/9.pngbin0 -> 3195 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/1.pngbin0 -> 3035 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/2.pngbin0 -> 3353 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/3.pngbin0 -> 3178 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/4.pngbin0 -> 3081 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/5.pngbin0 -> 3235 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/6.pngbin0 -> 3174 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/7.pngbin0 -> 3074 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/8.pngbin0 -> 3174 bytes
-rwxr-xr-xanim/DrawableObjectTests/IndividualFrames/pngt/a2/9.pngbin0 -> 3177 bytes
-rw-r--r--anim/DrawableObjectTests/Room.gifbin0 -> 34293 bytes
-rw-r--r--anim/DrawableObjectTests/Scene.py165
-rwxr-xr-xanim/DrawableObjectTests/Spritesheet.py31
-rwxr-xr-xanim/DrawableObjectTests/StaticDrawableObject.py32
-rw-r--r--anim/DrawableObjectTests/TestObject16
-rw-r--r--anim/DrawableObjectTests/TestObject.py16
-rw-r--r--anim/DrawableObjectTests/TestObject.txt16
-rw-r--r--anim/DrawableObjectTests/boxes.py32
-rw-r--r--anim/DrawableObjectTests/goblin.pngbin0 -> 29875 bytes
-rw-r--r--anim/DrawableObjectTests/renderupdates.py71
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/AnimatedSprite.py148
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/AnimatedSpriteTest.py309
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimTestMod.py361
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimatedSprite.py169
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/Buttons.bmpbin0 -> 57656 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/Buttons.bmpbin0 -> 86456 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/Buttons.gifbin0 -> 4053 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/Buttons.gifbin0 -> 2722 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/Buttons.pngbin0 -> 5786 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/Buttons.pngbin0 -> 6542 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/Buttons.psdbin0 -> 88230 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/1.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/2.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/3.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/4.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/5.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/6.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/7.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/8.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/9.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/1.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/2.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/3.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/4.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/5.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/6.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/7.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/8.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/9.bmpbin0 -> 3256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/1.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/2.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/3.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/4.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/5.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/6.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/7.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/8.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/9.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/1.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/2.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/3.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/4.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/5.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/6.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/7.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/8.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/9.bmpbin0 -> 4856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/1.gifbin0 -> 259 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/2.gifbin0 -> 411 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/3.gifbin0 -> 334 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/4.gifbin0 -> 272 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/5.gifbin0 -> 314 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/6.gifbin0 -> 282 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/7.gifbin0 -> 344 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/8.gifbin0 -> 400 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/9.gifbin0 -> 388 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/1.gifbin0 -> 259 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/2.gifbin0 -> 411 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/3.gifbin0 -> 334 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/4.gifbin0 -> 272 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/5.gifbin0 -> 314 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/6.gifbin0 -> 282 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/7.gifbin0 -> 344 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/8.gifbin0 -> 400 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/9.gifbin0 -> 388 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/1.gifbin0 -> 207 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/2.gifbin0 -> 316 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/3.gifbin0 -> 297 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/4.gifbin0 -> 241 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/5.gifbin0 -> 250 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/6.gifbin0 -> 233 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/7.gifbin0 -> 228 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/8.gifbin0 -> 258 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/9.gifbin0 -> 304 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/1.gifbin0 -> 207 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/2.gifbin0 -> 316 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/3.gifbin0 -> 297 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/4.gifbin0 -> 241 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/5.gifbin0 -> 250 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/6.gifbin0 -> 233 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/7.gifbin0 -> 228 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/8.gifbin0 -> 258 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/9.gifbin0 -> 304 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/1.pngbin0 -> 3012 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/2.pngbin0 -> 3215 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/3.pngbin0 -> 3115 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/4.pngbin0 -> 3055 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/5.pngbin0 -> 3124 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/6.pngbin0 -> 3111 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/7.pngbin0 -> 3247 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/8.pngbin0 -> 3230 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/9.pngbin0 -> 3270 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/1.pngbin0 -> 3013 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/2.pngbin0 -> 3227 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/3.pngbin0 -> 3116 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/4.pngbin0 -> 3056 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/5.pngbin0 -> 3134 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/6.pngbin0 -> 3112 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/7.pngbin0 -> 3246 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/8.pngbin0 -> 3237 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/9.pngbin0 -> 3273 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/1.pngbin0 -> 3049 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/2.pngbin0 -> 3356 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/3.pngbin0 -> 3178 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/4.pngbin0 -> 3095 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/5.pngbin0 -> 3234 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/6.pngbin0 -> 3177 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/7.pngbin0 -> 3092 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/8.pngbin0 -> 3171 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/9.pngbin0 -> 3195 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/1.pngbin0 -> 3035 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/2.pngbin0 -> 3353 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/3.pngbin0 -> 3178 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/4.pngbin0 -> 3081 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/5.pngbin0 -> 3235 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/6.pngbin0 -> 3174 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/7.pngbin0 -> 3074 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/8.pngbin0 -> 3174 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/9.pngbin0 -> 3177 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/1.bmpbin0 -> 28856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/2.bmpbin0 -> 28856 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/1.bmpbin0 -> 43256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/2.bmpbin0 -> 43256 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/1.gifbin0 -> 1883 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/2.gifbin0 -> 1883 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/1.gifbin0 -> 1162 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/2.gifbin0 -> 1388 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/1.pngbin0 -> 4317 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/2.pngbin0 -> 4342 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/text.txt2
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/1.pngbin0 -> 4164 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/2.pngbin0 -> 5185 bytes
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/text.txt2
-rw-r--r--devtools/CompleteTestKit/.to-do/Scene.py6
-rwxr-xr-xdevtools/CompleteTestKit/.to-do/dirtyTest.py122
-rw-r--r--devtools/CompleteTestKit/DrawableObjectTest.py66
-rw-r--r--devtools/CompleteTestKit/animObj/DrawableFontObject.py19
-rw-r--r--devtools/CompleteTestKit/animObj/DrawableObject.py157
-rw-r--r--devtools/CompleteTestKit/animObj/DynamicDrawableObject.py74
-rw-r--r--devtools/CompleteTestKit/animObj/Scene.py186
-rw-r--r--devtools/CompleteTestKit/animObj/__init__.py16
-rw-r--r--devtools/CompleteTestKit/art/GIF/Room.gifbin0 -> 34293 bytes
-rw-r--r--devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:18.522454.csv11
-rw-r--r--devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:58.338450.csv28
-rw-r--r--devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:06:40.515476.csv4
-rw-r--r--devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:09:49.989341.csv6
422 files changed, 3536 insertions, 0 deletions
diff --git a/MAFH2/fortuneengine/Scene.py~ b/MAFH2/fortuneengine/Scene.py~
new file mode 100644
index 0000000..21f7460
--- /dev/null
+++ b/MAFH2/fortuneengine/Scene.py~
@@ -0,0 +1,193 @@
+import pygame
+from pygame.sprite import RenderUpdates
+
+class Scene(pygame.sprite.RenderUpdates):
+
+ def __init__(self, sprites):
+
+ self._spritelist = []
+ self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()])
+ RenderUpdates.__init__(self, sprites)
+
+ self.xPos = 0
+ self.yPos = 0
+ self.xSize = 0
+ self.ySize = 0
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def calcPosition(self):
+
+ lowestX = 9000
+ lowestY = 9000
+
+ for i in range(len(self._spritelist)):
+ if self._spritelist[i][0].getXPos() < lowestX: lowestX = self._spritelist[i][0].getXPos()
+ if self._spritelist[i][0].getYPos() < lowestY: lowestY = self._spritelist[i][0].getYPos()
+
+ self.xPos = lowestX
+ self.yPos = lowestY
+
+ def calcSize(self):
+
+ highestX = 0
+ highestY = 0
+
+ for i in range(len(self._spritelist)):
+ if (self._spritelist[i][0].getXPos() + self._spritelist[i][0].getXSize()) > highestX: highestX = self._spritelist[i][0].getXPos() + self._spritelist[i][0].getXSize()
+ if (self._spritelist[i][0].getYPos() + self._spritelist[i][0].getYSize()) > highestY: highestY = self._spritelist[i][0].getYPos() + self._spritelist[i][0].getYSize()
+
+ self.xSize = highestX - self.xPos
+ self.ySize = highestY - self.yPos
+
+ def addObject(self, newDrawableObject):
+ RenderUpdates.add_internal(self, newDrawableObject)
+ self._spritelist.append([newDrawableObject, newDrawableObject.getXPos(), newDrawableObject.getYPos()])
+
+ def addObjects(self, newDrawableObjects):
+ for sprite in newDrawableObjects:
+ RenderUpdates.add_internal(self, sprite)
+ self._spritelist.append([sprite, sprite.getXPos(), sprite.getYPos()])
+
+ def setRelativePositions(self):
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][1] = self._spritelist[i][0].getXPos() - self.xPos
+ self._spritelist[i][2] = self._spritelist[i][0].getYPos() - self.yPos
+
+ def removeObject(self, sprite):
+
+ for i in self._spritelist:
+ if i[0] == sprite:
+ self._spritelist.remove(i)
+ break
+ RenderUpdates.remove_internal(self, sprite)
+
+ def getObject(self, index):
+
+ if index < len(self._spritelist):
+ return self._spritelist[index][0]
+
+ def getListSize(self):
+
+ return len(self._spritelist)
+
+ def getList(self):
+
+ return list(self._spritelist)
+
+ def moveObjects(self):
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][0].move()
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def moveScene(self, xNudge = 0, yNudge = 0):
+
+
+ for i in range(len(self._spritelist)):
+
+ self._spritelist[i][0].nudge(xNudge, yNudge)
+
+
+ self.calcPosition()
+
+ def setPosition(self, newXPos = None, newYPos = None):
+
+ if newXPos != None: self.xPos = newXPos
+ if newYPos != None: self.yPos = newYPos
+
+
+ for i in range(len(self._spritelist)):
+
+ self._spritelist[i][0].setPosition(self.xPos + self._spritelist[i][1], self.yPos + self._spritelist[i][2])
+
+
+ def getXPos(self):
+ return self.xPos
+
+ def getYPos(self):
+ return self.yPos
+
+ def getXSize(self):
+ return self.xSize
+
+ def getYSize(self):
+ return self.ySize
+
+ def scaleObjects(self, newXSize = None, newYSize = None):
+
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][0].scale(newXSize, newYSize)
+
+
+ def scaleScene(self, newXSize = None, newYSize = None):
+
+ self.calcPosition()
+ self.calcSize()
+
+ xScale = 1
+ yScale = 1
+
+ if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
+ if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
+
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][0].scale(xScale * self._spritelist[i][0].getXSize(), yScale * self._spritelist[i][0].getYSize())
+ self._spritelist[i][1] = xScale * self._spritelist[i][1]
+ self._spritelist[i][2] = yScale * self._spritelist[i][2]
+
+
+ self.calcPosition()
+ self.calcSize()
+ self.setPosition()
+
+ def update(self, t):
+
+ for s in self._spritelist: s[0].update(t);
+
+ def draw(self, surface):
+ spritedict = self.spritedict
+ surface_blit = surface.blit
+ dirty = self.lostsprites
+ self.lostsprites = []
+ dirty_append = dirty.append
+ for s in self._spritelist:
+ r = spritedict[s[0]]
+ newrect = surface_blit(s[0].image, s[0].rect)
+ if r is 0:
+ dirty_append(newrect)
+ else:
+ if newrect.colliderect(r):
+ dirty_append(newrect.union(r))
+ else:
+ dirty_append(newrect)
+ dirty_append(r)
+ spritedict[s[0]] = newrect
+ return dirty
+
+ def drawEntireScene(self, surface):
+ spritedict = self.spritedict
+ surface_blit = surface.blit
+ dirty = self.lostsprites
+ self.lostsprites = []
+ dirty_append = dirty.append
+ for s in self._spritelist:
+ dirty_append(spritedict[s[0]])
+ dirty_append(surface_blit(s[0].image, s[0].rect))
+ return dirty
+
+ def nextFrame(self):
+
+
+ for i in range(len(self._spritelist)):
+
+ self._spritelist[i][0].nextFrame()
+
diff --git a/anim/Animation Styles/AnimatedSprite.py b/anim/Animation Styles/AnimatedSprite.py
new file mode 100755
index 0000000..6796600
--- /dev/null
+++ b/anim/Animation Styles/AnimatedSprite.py
@@ -0,0 +1,141 @@
+import pygame
+
+class Spritesheet:
+ """
+ Class from http://www.scriptedfun.com/transcript-2-using-sprite-sheets-and-drawing-the-background/
+
+ This class can be used to seporate images from the sprite sheet
+ """
+ def __init__(self, filename):
+ self.sheet = pygame.image.load(filename)#.convert()
+
+ def imgat(self, rect):
+ rect = pygame.Rect(rect)
+ image = pygame.Surface(rect.size)#.convert()
+ image.blit(self.sheet, (0, 0), rect)
+ return image
+
+ def imgsat(self, rects):
+ imgs = []
+ for rect in rects:
+ imgs.append(self.imgat(rect))
+ return imgs
+
+ def img_extract( self, cols, rows, width, height ):
+ rect_list = []
+ for y in range(0, rows):
+ for x in range(0, cols):
+ rect_list.append( (width*x, height*y, width, height) )
+ return self.imgsat( rect_list)
+
+
+class AnimatedSprite(pygame.sprite.Sprite):
+ """
+ http://shinylittlething.com/2009/07/21/pygame-and-animated-sprites/
+ """
+
+ def __init__(self,images,textfileName,fps = 10):
+ pygame.sprite.Sprite.__init__(self)
+ self._images = images
+
+ # Track the time we started, and the time between updates.
+ # Then we can figure out when we have to switch the image.
+ self._start = pygame.time.get_ticks()
+ self._delay = 1000 / fps
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+
+ if textfileName != '':
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ while currentLine != '':
+ animValues = currentLine.split(",")
+ #This is a list called animations that at each position contains a list of two values. the first value is the start position
+ #of the given animation and the second is the end position of the given animation
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()
+
+ # Call update to set our first image.
+ #self.update(pygame.time.get_ticks())
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+ def update(self, t):
+ # This method updates the animation in a situation where there is only one animation contained within the object.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame and continues to check over and over until it is not
+ while self._frame >= len(self._images):
+ #since we are past the final frame it is now figuring out how many frames past the final frame we have actually gone
+ framesPast = self._frame - len(self._images)
+ #sets the current frame to the frame it should be at
+ self._frame = framesPast - 1
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def updateAnimation(self, t, animName):
+ # This method updates the animation based on the start and end frame of the specific animation you are on.
+ #This means that if your object contains multiple animations, you can use this method to reference the exact
+ #animation that you are using.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #Checks to make sure that the current frame is actually set to a position within the animation
+ if self._frame < self.animations.get(animName)[0] or self._frame > self.animations.get(animName)[1]:
+ #corrects the position of the current frame
+ self._frame = self.animations.get(animName)[0]
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame of the current animation and continues to check over and over
+ #until it is not
+ while self._frame >= self.animations.get(animName)[1]:
+ #Determines how many frames past the final frame of the animation it is
+ framesPast = self._frame - self.animations.get(animName)[1]
+ #Sets the current frame to the frame it should be at
+ self._frame = framesPast - 1 + self.animations.get(animName)[0]
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def nextFrame(self):
+ # This definition is designed to simply move to the next frame.
+ # All of the other definitions only move to the nex frame if
+ # enough time has passed based on the framerate. With this
+ # definition I can go right to the next frame allowing me to
+ # see how fast a framerate I can get to and not be limited by
+ # what I define.
+
+ self._frame += 1
+ if self._frame >= len(self._images):
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+ self.image = self._images[self._frame]
+
+ def nextAnimFrame(self, animName):
+ # This definition is designed to simply move to the next frame of the specified animation.
+ if self._frame < self.animations[animName][0]:
+ self._frame = self.animations[animName][0]
+
+ self._frame += 1
+ if self._frame > self.animations[animName][1]:
+ framesPast = self._frame - self.animations[animName][1]
+ self._frame = framesPast - 1 + self.animations[animName][0]
+ self.image = self._images[self._frame]
+
diff --git a/anim/Animation Styles/AnimatedSpriteTest.py b/anim/Animation Styles/AnimatedSpriteTest.py
new file mode 100755
index 0000000..1f8bbe5
--- /dev/null
+++ b/anim/Animation Styles/AnimatedSpriteTest.py
@@ -0,0 +1,317 @@
+#! /usr/bin/env python
+from AnimatedSprite import Spritesheet
+from AnimatedSprite import AnimatedSprite
+import pygame
+import time
+pygame.init()
+
+make=input("How many images would you like to load? ")
+img={}
+ft="" #filetype
+r=0 #frame refreshes
+i=1 #cycles images
+SIZE = WIDTH, HEIGHT = 600,400 #screen sizes
+t=0 #trial number
+
+BACKGROUNDR=152
+BACKGROUNDG=0
+BACKGROUNDB=152
+
+AnimPerLineArr=[
+ [".bmp","AnimationPerLine/bmp16/"],
+ [".bmp","AnimationPerLine/bmp24/"],
+ [".gif","AnimationPerLine/gif/"] ,
+ [".gif","AnimationPerLine/gift/"] ,
+ [".png","AnimationPerLine/png/"] ,
+ [".png","AnimationPerLine/pngt/"] ]
+
+FixedWidthArr=[
+ [".bmp","FixedWithSheets/bmp16/"],
+ [".bmp","FixedWithSheets/bmp24/"],
+ [".gif","FixedWithSheets/gif/"] ,
+ [".gif","FixedWithSheets/gift/"] ,
+ [".png","FixedWithSheets/png/"] ,
+ [".png","FixedWidthSheets/pngt/"] ]
+
+OneSheetArr=[
+ [".bmp","OneSheetPerAnimation/bmp16/"],
+ [".bmp","OneSheetPerAnimation/bmp24/"],
+ [".gif","OneSheetPerAnimation/gif/"] ,
+ [".gif","OneSheetPerAnimation/gift/"] ,
+ [".png","OneSheetPerAnimation/png/"] ,
+ [".png","OneSheetPerAnimation/pngt/"] ]
+
+IndivFrameArr=[
+ [".bmp","IndividualFrames/bmp16/"],
+ [".bmp","IndividualFrames/bmp24/"],
+ [".gif","IndividualFrames/gif/"] ,
+ [".gif","IndividualFrames/gift/"] ,
+ [".png","IndividualFrames/png/"] ,
+ [".png","IndividualFrames/pngt/"] ]
+
+screen = pygame.display.set_mode(SIZE) #Screen Set 600x400
+
+screen.fill((BACKGROUNDR, BACKGROUNDG, BACKGROUNDB))
+
+"""Reading Individual Frames
+"""
+
+def readIndivFrames(fileType, path):
+ switch1 = [
+ [pygame.image.load("%sa1/1%s"%(path,fileType))],
+ [pygame.image.load("%sa1/2%s"%(path,fileType))],
+ [pygame.image.load("%sa1/3%s"%(path,fileType))],
+ [pygame.image.load("%sa1/4%s"%(path,fileType))],
+ [pygame.image.load("%sa1/5%s"%(path,fileType))],
+ [pygame.image.load("%sa1/6%s"%(path,fileType))],
+ [pygame.image.load("%sa1/7%s"%(path,fileType))],
+ [pygame.image.load("%sa1/8%s"%(path,fileType))],
+ [pygame.image.load("%sa1/9%s"%(path,fileType))]
+ ]
+
+ switch2 = [
+ [pygame.image.load("%sa2/1%s"%(path,fileType))],
+ [pygame.image.load("%sa2/2%s"%(path,fileType))],
+ [pygame.image.load("%sa2/3%s"%(path,fileType))],
+ [pygame.image.load("%sa2/4%s"%(path,fileType))],
+ [pygame.image.load("%sa2/5%s"%(path,fileType))],
+ [pygame.image.load("%sa2/6%s"%(path,fileType))],
+ [pygame.image.load("%sa2/7%s"%(path,fileType))],
+ [pygame.image.load("%sa2/8%s"%(path,fileType))],
+ [pygame.image.load("%sa2/9%s"%(path,fileType))]
+ ]
+
+ instances= []
+
+ cnt = make
+
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(switch1,'',10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(switch2,'',10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextFrame()
+ instances[groups][1][0].nextFrame()
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > WIDTH - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > HEIGHT - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > WIDTH - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > HEIGHT - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image[0], (instances[groups][0][0].image[0].get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image[0], (instances[groups][1][0].image[0].get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((BACKGROUNDR,BACKGROUNDG,BACKGROUNDB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+
+def readPerLine(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%sButtons%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextAnimFrame("anim1")
+ instances[groups][1][0].nextAnimFrame("anim2")
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > WIDTH - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > HEIGHT - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > WIDTH - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > HEIGHT - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((BACKGROUNDR,BACKGROUNDG,BACKGROUNDB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+def readIndivSheet(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%s1%s"%(path,fileType)))
+ spriteSheet2 = Spritesheet(("%s2%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+ animatedSprites[0][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+ animatedSprites[1][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextAnimFrame("anim1")
+ instances[groups][1][0].nextAnimFrame("anim2")
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > WIDTH - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > HEIGHT - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > WIDTH - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > HEIGHT - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((BACKGROUNDR,BACKGROUNDG,BACKGROUNDB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+
+#-----------------------------------------------------------------
+iterator = 0
+print "\nTesting One Sheet Per Animation"
+print ""
+while iterator < len(AnimPerLineArr):
+
+ print ""
+ print OneSheetArr[iterator][1]
+ readIndivSheet(OneSheetArr[iterator][0],OneSheetArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print ""
+print "Testing One Animation Per Line"
+print ""
+while iterator < len(OneSheetArr):
+
+ print ""
+ print AnimPerLineArr[iterator][1]
+ readPerLine(AnimPerLineArr[iterator][0],AnimPerLineArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print ""
+print "Testing Individual Frames"
+print ""
+while iterator < len(IndivFrameArr):
+
+ print ""
+ print IndivFrameArr[iterator][1]
+ readIndivFrames(IndivFrameArr[iterator][0],IndivFrameArr[iterator][1])
+ iterator += 1
diff --git a/anim/Animation Styles/AnimatedSpriteTest.py~ b/anim/Animation Styles/AnimatedSpriteTest.py~
new file mode 100644
index 0000000..1aac3bb
--- /dev/null
+++ b/anim/Animation Styles/AnimatedSpriteTest.py~
@@ -0,0 +1,289 @@
+from AnimatedSprite import Spritesheet, AnimatedSprite
+import sys, pygame, time
+pygame.init()
+
+print "Animated Sprite Test - Authors Dave Silverman and Scott Mengel"
+
+#--------------------------------------------------------------
+#CONSTANTS AND VARIABLES
+
+make=input("How many images would you like to load? ")
+img={}
+ft="" #filetype
+r=0 #frame refreshes
+i=1 #cycles images
+size = width, height = 600,400 #screen sizes
+t=0 #trial number
+
+AnimPerLineArr=[ ["bmp","AnimationPerLine/bmp16/"] , ["bmp","AnimationPerLine/bmp24/"] , ["gif","AnimationPerLine/gif/"] , ["gif","AnimationPerLine/gift/"] , ["png","AnimationPerLine/png/"] , ["png","AnimationPerLine/pngt/"] ]
+FixedWidthArr=[ ["bmp","FixedWithSheets/bmp16/"] , ["bmp","FixedWithSheets/bmp24/"] , ["gif","FixedWithSheets/gif/"] , ["gif","FixedWithSheets/gift/"] , ["png","FixedWithSheets/png/"] , ["png","FixedWidthSheets/pngt/"] ]
+OneSheetArr=[ ["bmp","OneSheetPerAnimation/bmp16/"] , ["bmp","OneSheetPerAnimation/bmp24/"] , ["gif","OneSheetPerAnimation/gif/"] , ["gif","OneSheetPerAnimation/gift/"] , ["png","OneSheetPerAnimation/png/"] , ["png","OneSheetPerAnimation/pngt/"] ]
+IndivFrameArr=[ ["bmp","IndividualFrames/bmp16/"] , ["bmp","IndividualFrames/bmp24/"] , ["gif","IndividualFrames/gif/"] , ["gif","IndividualFrames/gift/"] , ["png","IndividualFrames/png/"] , ["png","IndividualFrames/pngt/"] ]
+
+screen = pygame.display.set_mode(size) #Screen Set 600x400
+backgroundR = 152
+backgroundG = 0
+backgroundB = 152
+screen.fill((backgroundR, backgroundG, backgroundB))
+#-----------------------------------------------------------------
+#Reading Individual Frames
+
+def readIndivFrames(fileType, path):
+ switch1 = [
+ [pygame.image.load("%sa1/1.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/2.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/3.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/4.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/5.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/6.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/7.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/8.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/9.%s"%(path,fileType))]
+ ]
+
+ switch2 = [
+ [pygame.image.load("%sa2/1.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/2.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/3.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/4.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/5.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/6.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/7.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/8.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/9.%s"%(path,fileType))]
+ ]
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(switch1,'',10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(switch2,'',10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextFrame()
+ instances[groups][1][0].nextFrame()
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image[0], (instances[groups][0][0].image[0].get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image[0], (instances[groups][1][0].image[0].get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((backgroundR,backgroundG,backgroundB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+
+def readPerLine(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%sButtons.%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextAnimFrame("anim1")
+ instances[groups][1][0].nextAnimFrame("anim2")
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((backgroundR,backgroundG,backgroundB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+def readIndivSheet(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%s1.%s"%(path,fileType)))
+ spriteSheet2 = Spritesheet(("%s2.%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+ animatedSprites[0][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+ animatedSprites[1][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextAnimFrame("anim1")
+ instances[groups][1][0].nextAnimFrame("anim2")
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((backgroundR,backgroundG,backgroundB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+
+#-----------------------------------------------------------------
+iterator = 0
+print""
+print "Testing One Sheet Per Animation"
+print ""
+while iterator < len(AnimPerLineArr):
+
+ print""
+ print OneSheetArr[iterator][1]
+ readIndivSheet(OneSheetArr[iterator][0],OneSheetArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print""
+print "Testing One Animation Per Line"
+print ""
+while iterator < len(OneSheetArr):
+
+ print ""
+ print AnimPerLineArr[iterator][1]
+ readPerLine(AnimPerLineArr[iterator][0],AnimPerLineArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print ""
+print "Testing Individual Frames"
+print ""
+while iterator < len(IndivFrameArr):
+
+ print ""
+ print IndivFrameArr[iterator][1]
+ readIndivFrames(IndivFrameArr[iterator][0],IndivFrameArr[iterator][1])
+ iterator += 1
diff --git a/anim/Animation Styles/AnimationPerLine/bmp16/Buttons.bmp b/anim/Animation Styles/AnimationPerLine/bmp16/Buttons.bmp
new file mode 100755
index 0000000..7edcb3c
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/bmp16/Buttons.bmp
Binary files differ
diff --git a/anim/Animation Styles/AnimationPerLine/bmp16/text.txt b/anim/Animation Styles/AnimationPerLine/bmp16/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/bmp16/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/AnimationPerLine/bmp24/Buttons.bmp b/anim/Animation Styles/AnimationPerLine/bmp24/Buttons.bmp
new file mode 100755
index 0000000..a96ed6b
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/bmp24/Buttons.bmp
Binary files differ
diff --git a/anim/Animation Styles/AnimationPerLine/bmp24/text.txt b/anim/Animation Styles/AnimationPerLine/bmp24/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/bmp24/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/AnimationPerLine/gif/Buttons.gif b/anim/Animation Styles/AnimationPerLine/gif/Buttons.gif
new file mode 100755
index 0000000..8725ade
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/gif/Buttons.gif
Binary files differ
diff --git a/anim/Animation Styles/AnimationPerLine/gif/text.txt b/anim/Animation Styles/AnimationPerLine/gif/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/gif/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/AnimationPerLine/gift/Buttons.gif b/anim/Animation Styles/AnimationPerLine/gift/Buttons.gif
new file mode 100755
index 0000000..4be81f6
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/gift/Buttons.gif
Binary files differ
diff --git a/anim/Animation Styles/AnimationPerLine/gift/text.txt b/anim/Animation Styles/AnimationPerLine/gift/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/gift/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/AnimationPerLine/png/Buttons.png b/anim/Animation Styles/AnimationPerLine/png/Buttons.png
new file mode 100755
index 0000000..83bff0c
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/png/Buttons.png
Binary files differ
diff --git a/anim/Animation Styles/AnimationPerLine/png/text.txt b/anim/Animation Styles/AnimationPerLine/png/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/png/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/AnimationPerLine/pngt/Buttons.png b/anim/Animation Styles/AnimationPerLine/pngt/Buttons.png
new file mode 100755
index 0000000..cb6766f
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/pngt/Buttons.png
Binary files differ
diff --git a/anim/Animation Styles/AnimationPerLine/pngt/text.txt b/anim/Animation Styles/AnimationPerLine/pngt/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/AnimationPerLine/pngt/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/Buttons.psd b/anim/Animation Styles/Buttons.psd
new file mode 100755
index 0000000..a1571e2
--- /dev/null
+++ b/anim/Animation Styles/Buttons.psd
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/1.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/1.bmp
new file mode 100755
index 0000000..57630e3
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/1.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/2.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/2.bmp
new file mode 100755
index 0000000..90af77a
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/2.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/3.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/3.bmp
new file mode 100755
index 0000000..1751a4a
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/3.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/4.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/4.bmp
new file mode 100755
index 0000000..1f292d1
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/4.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/5.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/5.bmp
new file mode 100755
index 0000000..fd8cc0e
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/5.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/6.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/6.bmp
new file mode 100755
index 0000000..df3a2eb
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/6.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/7.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/7.bmp
new file mode 100755
index 0000000..51b0052
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/7.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/8.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/8.bmp
new file mode 100755
index 0000000..9302c64
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/8.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a1/9.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a1/9.bmp
new file mode 100755
index 0000000..f5c6191
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a1/9.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/1.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/1.bmp
new file mode 100755
index 0000000..4def064
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/1.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/2.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/2.bmp
new file mode 100755
index 0000000..3750af4
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/2.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/3.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/3.bmp
new file mode 100755
index 0000000..636c6f3
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/3.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/4.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/4.bmp
new file mode 100755
index 0000000..646b407
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/4.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/5.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/5.bmp
new file mode 100755
index 0000000..11a9bf5
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/5.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/6.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/6.bmp
new file mode 100755
index 0000000..ca1ba7b
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/6.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/7.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/7.bmp
new file mode 100755
index 0000000..9375c15
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/7.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/8.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/8.bmp
new file mode 100755
index 0000000..53b66f9
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/8.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp16/a2/9.bmp b/anim/Animation Styles/IndividualFrames/bmp16/a2/9.bmp
new file mode 100755
index 0000000..088558c
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp16/a2/9.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/1.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/1.bmp
new file mode 100755
index 0000000..e910cec
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/1.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/2.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/2.bmp
new file mode 100755
index 0000000..0545f38
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/2.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/3.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/3.bmp
new file mode 100755
index 0000000..a154b29
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/3.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/4.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/4.bmp
new file mode 100755
index 0000000..4ab21f9
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/4.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/5.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/5.bmp
new file mode 100755
index 0000000..0a55d39
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/5.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/6.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/6.bmp
new file mode 100755
index 0000000..ad3f1b1
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/6.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/7.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/7.bmp
new file mode 100755
index 0000000..915ab5b
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/7.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/8.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/8.bmp
new file mode 100755
index 0000000..b36287d
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/8.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a1/9.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a1/9.bmp
new file mode 100755
index 0000000..2cab5a4
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a1/9.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/1.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/1.bmp
new file mode 100755
index 0000000..1b41dff
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/1.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/2.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/2.bmp
new file mode 100755
index 0000000..71cca69
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/2.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/3.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/3.bmp
new file mode 100755
index 0000000..a374206
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/3.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/4.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/4.bmp
new file mode 100755
index 0000000..37c4304
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/4.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/5.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/5.bmp
new file mode 100755
index 0000000..51f1acb
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/5.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/6.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/6.bmp
new file mode 100755
index 0000000..483043c
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/6.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/7.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/7.bmp
new file mode 100755
index 0000000..d99e779
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/7.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/8.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/8.bmp
new file mode 100755
index 0000000..223b87e
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/8.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/bmp24/a2/9.bmp b/anim/Animation Styles/IndividualFrames/bmp24/a2/9.bmp
new file mode 100755
index 0000000..088a0f5
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/bmp24/a2/9.bmp
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/1.gif b/anim/Animation Styles/IndividualFrames/gif/a1/1.gif
new file mode 100755
index 0000000..4a89216
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/1.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/2.gif b/anim/Animation Styles/IndividualFrames/gif/a1/2.gif
new file mode 100755
index 0000000..b5019d8
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/2.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/3.gif b/anim/Animation Styles/IndividualFrames/gif/a1/3.gif
new file mode 100755
index 0000000..a87ddc6
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/3.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/4.gif b/anim/Animation Styles/IndividualFrames/gif/a1/4.gif
new file mode 100755
index 0000000..2a398e6
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/4.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/5.gif b/anim/Animation Styles/IndividualFrames/gif/a1/5.gif
new file mode 100755
index 0000000..93e5b8d
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/5.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/6.gif b/anim/Animation Styles/IndividualFrames/gif/a1/6.gif
new file mode 100755
index 0000000..0e73825
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/6.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/7.gif b/anim/Animation Styles/IndividualFrames/gif/a1/7.gif
new file mode 100755
index 0000000..061669a
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/7.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/8.gif b/anim/Animation Styles/IndividualFrames/gif/a1/8.gif
new file mode 100755
index 0000000..90dcfda
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/8.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a1/9.gif b/anim/Animation Styles/IndividualFrames/gif/a1/9.gif
new file mode 100755
index 0000000..aa194d9
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a1/9.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/1.gif b/anim/Animation Styles/IndividualFrames/gif/a2/1.gif
new file mode 100755
index 0000000..09134f4
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/1.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/2.gif b/anim/Animation Styles/IndividualFrames/gif/a2/2.gif
new file mode 100755
index 0000000..d9ebbc2
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/2.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/3.gif b/anim/Animation Styles/IndividualFrames/gif/a2/3.gif
new file mode 100755
index 0000000..de17bd4
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/3.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/4.gif b/anim/Animation Styles/IndividualFrames/gif/a2/4.gif
new file mode 100755
index 0000000..87450de
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/4.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/5.gif b/anim/Animation Styles/IndividualFrames/gif/a2/5.gif
new file mode 100755
index 0000000..f95b8d9
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/5.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/6.gif b/anim/Animation Styles/IndividualFrames/gif/a2/6.gif
new file mode 100755
index 0000000..3462272
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/6.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/7.gif b/anim/Animation Styles/IndividualFrames/gif/a2/7.gif
new file mode 100755
index 0000000..ac5f084
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/7.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/8.gif b/anim/Animation Styles/IndividualFrames/gif/a2/8.gif
new file mode 100755
index 0000000..d9d3989
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/8.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gif/a2/9.gif b/anim/Animation Styles/IndividualFrames/gif/a2/9.gif
new file mode 100755
index 0000000..bcdd274
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gif/a2/9.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/1.gif b/anim/Animation Styles/IndividualFrames/gift/a1/1.gif
new file mode 100755
index 0000000..2aad244
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/1.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/2.gif b/anim/Animation Styles/IndividualFrames/gift/a1/2.gif
new file mode 100755
index 0000000..ed22525
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/2.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/3.gif b/anim/Animation Styles/IndividualFrames/gift/a1/3.gif
new file mode 100755
index 0000000..246cd12
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/3.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/4.gif b/anim/Animation Styles/IndividualFrames/gift/a1/4.gif
new file mode 100755
index 0000000..722f240
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/4.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/5.gif b/anim/Animation Styles/IndividualFrames/gift/a1/5.gif
new file mode 100755
index 0000000..6a71348
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/5.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/6.gif b/anim/Animation Styles/IndividualFrames/gift/a1/6.gif
new file mode 100755
index 0000000..0dd2145
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/6.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/7.gif b/anim/Animation Styles/IndividualFrames/gift/a1/7.gif
new file mode 100755
index 0000000..1e9914b
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/7.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/8.gif b/anim/Animation Styles/IndividualFrames/gift/a1/8.gif
new file mode 100755
index 0000000..390124b
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/8.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a1/9.gif b/anim/Animation Styles/IndividualFrames/gift/a1/9.gif
new file mode 100755
index 0000000..61c8c3c
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a1/9.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/1.gif b/anim/Animation Styles/IndividualFrames/gift/a2/1.gif
new file mode 100755
index 0000000..a79f1e0
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/1.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/2.gif b/anim/Animation Styles/IndividualFrames/gift/a2/2.gif
new file mode 100755
index 0000000..b2579e3
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/2.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/3.gif b/anim/Animation Styles/IndividualFrames/gift/a2/3.gif
new file mode 100755
index 0000000..42f2c74
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/3.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/4.gif b/anim/Animation Styles/IndividualFrames/gift/a2/4.gif
new file mode 100755
index 0000000..61b944a
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/4.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/5.gif b/anim/Animation Styles/IndividualFrames/gift/a2/5.gif
new file mode 100755
index 0000000..865f4c7
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/5.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/6.gif b/anim/Animation Styles/IndividualFrames/gift/a2/6.gif
new file mode 100755
index 0000000..9fa7cf2
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/6.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/7.gif b/anim/Animation Styles/IndividualFrames/gift/a2/7.gif
new file mode 100755
index 0000000..d7627b2
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/7.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/8.gif b/anim/Animation Styles/IndividualFrames/gift/a2/8.gif
new file mode 100755
index 0000000..965acc1
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/8.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/gift/a2/9.gif b/anim/Animation Styles/IndividualFrames/gift/a2/9.gif
new file mode 100755
index 0000000..0509dad
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/gift/a2/9.gif
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/1.png b/anim/Animation Styles/IndividualFrames/png/a1/1.png
new file mode 100755
index 0000000..663ca83
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/1.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/2.png b/anim/Animation Styles/IndividualFrames/png/a1/2.png
new file mode 100755
index 0000000..6f44ab5
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/2.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/3.png b/anim/Animation Styles/IndividualFrames/png/a1/3.png
new file mode 100755
index 0000000..c49ab7e
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/3.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/4.png b/anim/Animation Styles/IndividualFrames/png/a1/4.png
new file mode 100755
index 0000000..63eb7e2
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/4.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/5.png b/anim/Animation Styles/IndividualFrames/png/a1/5.png
new file mode 100755
index 0000000..2aaa600
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/5.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/6.png b/anim/Animation Styles/IndividualFrames/png/a1/6.png
new file mode 100755
index 0000000..8fa9737
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/6.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/7.png b/anim/Animation Styles/IndividualFrames/png/a1/7.png
new file mode 100755
index 0000000..1de0311
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/7.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/8.png b/anim/Animation Styles/IndividualFrames/png/a1/8.png
new file mode 100755
index 0000000..7d6332a
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/8.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a1/9.png b/anim/Animation Styles/IndividualFrames/png/a1/9.png
new file mode 100755
index 0000000..5a8b0ea
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a1/9.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/1.png b/anim/Animation Styles/IndividualFrames/png/a2/1.png
new file mode 100755
index 0000000..98b3d72
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/1.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/2.png b/anim/Animation Styles/IndividualFrames/png/a2/2.png
new file mode 100755
index 0000000..6ec3dac
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/2.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/3.png b/anim/Animation Styles/IndividualFrames/png/a2/3.png
new file mode 100755
index 0000000..157dfc8
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/3.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/4.png b/anim/Animation Styles/IndividualFrames/png/a2/4.png
new file mode 100755
index 0000000..5719ab6
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/4.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/5.png b/anim/Animation Styles/IndividualFrames/png/a2/5.png
new file mode 100755
index 0000000..3cfd8a3
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/5.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/6.png b/anim/Animation Styles/IndividualFrames/png/a2/6.png
new file mode 100755
index 0000000..750ed8b
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/6.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/7.png b/anim/Animation Styles/IndividualFrames/png/a2/7.png
new file mode 100755
index 0000000..ce7756e
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/7.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/8.png b/anim/Animation Styles/IndividualFrames/png/a2/8.png
new file mode 100755
index 0000000..e28a906
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/8.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/png/a2/9.png b/anim/Animation Styles/IndividualFrames/png/a2/9.png
new file mode 100755
index 0000000..b6b2cd8
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/png/a2/9.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/1.png b/anim/Animation Styles/IndividualFrames/pngt/a1/1.png
new file mode 100755
index 0000000..dab1239
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/1.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/2.png b/anim/Animation Styles/IndividualFrames/pngt/a1/2.png
new file mode 100755
index 0000000..56312a7
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/2.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/3.png b/anim/Animation Styles/IndividualFrames/pngt/a1/3.png
new file mode 100755
index 0000000..4ceb540
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/3.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/4.png b/anim/Animation Styles/IndividualFrames/pngt/a1/4.png
new file mode 100755
index 0000000..38d640a
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/4.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/5.png b/anim/Animation Styles/IndividualFrames/pngt/a1/5.png
new file mode 100755
index 0000000..dcc14d4
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/5.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/6.png b/anim/Animation Styles/IndividualFrames/pngt/a1/6.png
new file mode 100755
index 0000000..cb2f933
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/6.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/7.png b/anim/Animation Styles/IndividualFrames/pngt/a1/7.png
new file mode 100755
index 0000000..497ed6f
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/7.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/8.png b/anim/Animation Styles/IndividualFrames/pngt/a1/8.png
new file mode 100755
index 0000000..693ac1e
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/8.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a1/9.png b/anim/Animation Styles/IndividualFrames/pngt/a1/9.png
new file mode 100755
index 0000000..e83b570
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a1/9.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/1.png b/anim/Animation Styles/IndividualFrames/pngt/a2/1.png
new file mode 100755
index 0000000..06f2b7c
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/1.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/2.png b/anim/Animation Styles/IndividualFrames/pngt/a2/2.png
new file mode 100755
index 0000000..f20ed10
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/2.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/3.png b/anim/Animation Styles/IndividualFrames/pngt/a2/3.png
new file mode 100755
index 0000000..6681f2e
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/3.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/4.png b/anim/Animation Styles/IndividualFrames/pngt/a2/4.png
new file mode 100755
index 0000000..ff3f0f1
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/4.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/5.png b/anim/Animation Styles/IndividualFrames/pngt/a2/5.png
new file mode 100755
index 0000000..1152066
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/5.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/6.png b/anim/Animation Styles/IndividualFrames/pngt/a2/6.png
new file mode 100755
index 0000000..458e680
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/6.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/7.png b/anim/Animation Styles/IndividualFrames/pngt/a2/7.png
new file mode 100755
index 0000000..4097b74
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/7.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/8.png b/anim/Animation Styles/IndividualFrames/pngt/a2/8.png
new file mode 100755
index 0000000..e6ee9b2
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/8.png
Binary files differ
diff --git a/anim/Animation Styles/IndividualFrames/pngt/a2/9.png b/anim/Animation Styles/IndividualFrames/pngt/a2/9.png
new file mode 100755
index 0000000..314aabf
--- /dev/null
+++ b/anim/Animation Styles/IndividualFrames/pngt/a2/9.png
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/bmp16/1.bmp b/anim/Animation Styles/OneSheetPerAnimation/bmp16/1.bmp
new file mode 100755
index 0000000..9798a08
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/bmp16/1.bmp
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/bmp16/2.bmp b/anim/Animation Styles/OneSheetPerAnimation/bmp16/2.bmp
new file mode 100755
index 0000000..68ba0ba
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/bmp16/2.bmp
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/bmp16/text.txt b/anim/Animation Styles/OneSheetPerAnimation/bmp16/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/bmp16/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/OneSheetPerAnimation/bmp24/1.bmp b/anim/Animation Styles/OneSheetPerAnimation/bmp24/1.bmp
new file mode 100755
index 0000000..7ff69f4
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/bmp24/1.bmp
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/bmp24/2.bmp b/anim/Animation Styles/OneSheetPerAnimation/bmp24/2.bmp
new file mode 100755
index 0000000..a771b04
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/bmp24/2.bmp
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/bmp24/text.txt b/anim/Animation Styles/OneSheetPerAnimation/bmp24/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/bmp24/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/OneSheetPerAnimation/gif/1.gif b/anim/Animation Styles/OneSheetPerAnimation/gif/1.gif
new file mode 100755
index 0000000..223321b
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/gif/1.gif
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/gif/2.gif b/anim/Animation Styles/OneSheetPerAnimation/gif/2.gif
new file mode 100755
index 0000000..56c1a0f
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/gif/2.gif
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/gif/text.txt b/anim/Animation Styles/OneSheetPerAnimation/gif/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/gif/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/OneSheetPerAnimation/gift/1.gif b/anim/Animation Styles/OneSheetPerAnimation/gift/1.gif
new file mode 100755
index 0000000..895ff39
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/gift/1.gif
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/gift/2.gif b/anim/Animation Styles/OneSheetPerAnimation/gift/2.gif
new file mode 100755
index 0000000..61d6302
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/gift/2.gif
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/gift/text.txt b/anim/Animation Styles/OneSheetPerAnimation/gift/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/gift/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/OneSheetPerAnimation/png/1.png b/anim/Animation Styles/OneSheetPerAnimation/png/1.png
new file mode 100755
index 0000000..99f9800
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/png/1.png
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/png/2.png b/anim/Animation Styles/OneSheetPerAnimation/png/2.png
new file mode 100755
index 0000000..41b01d4
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/png/2.png
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/png/text.txt b/anim/Animation Styles/OneSheetPerAnimation/png/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/png/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/Animation Styles/OneSheetPerAnimation/pngt/1.png b/anim/Animation Styles/OneSheetPerAnimation/pngt/1.png
new file mode 100755
index 0000000..37d045a
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/pngt/1.png
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/pngt/2.png b/anim/Animation Styles/OneSheetPerAnimation/pngt/2.png
new file mode 100755
index 0000000..b7a00a1
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/pngt/2.png
Binary files differ
diff --git a/anim/Animation Styles/OneSheetPerAnimation/pngt/text.txt b/anim/Animation Styles/OneSheetPerAnimation/pngt/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/anim/Animation Styles/OneSheetPerAnimation/pngt/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/anim/DrawableObjectTests/AnimatedSprite.py b/anim/DrawableObjectTests/AnimatedSprite.py
new file mode 100755
index 0000000..4f5c8ba
--- /dev/null
+++ b/anim/DrawableObjectTests/AnimatedSprite.py
@@ -0,0 +1,140 @@
+import pygame
+
+class Spritesheet:
+ """
+ Class from http://www.scriptedfun.com/transcript-2-using-sprite-sheets-and-drawing-the-background/
+
+ """
+ def __init__(self, filename):
+ self.sheet = pygame.image.load(filename)#.convert()
+
+ def imgat(self, rect):
+ rect = pygame.Rect(rect)
+ image = pygame.Surface(rect.size)#.convert()
+ image.blit(self.sheet, (0, 0), rect)
+ return image
+
+ def imgsat(self, rects):
+ imgs = []
+ for rect in rects:
+ imgs.append(self.imgat(rect))
+ return imgs
+
+ def img_extract( self, cols, rows, width, height ):
+ rect_list = []
+ for y in range(0, rows):
+ for x in range(0, cols):
+ rect_list.append( (width*x, height*y, width, height) )
+ return self.imgsat( rect_list)
+
+
+class AnimatedSprite(pygame.sprite.Sprite):
+ """
+ http://shinylittlething.com/2009/07/21/pygame-and-animated-sprites/
+ """
+
+ def __init__(self,images,textfileName,fps = 10):
+ pygame.sprite.Sprite.__init__(self)
+ self._images = images
+
+ # Track the time we started, and the time between updates.
+ # Then we can figure out when we have to switch the image.
+ self._start = pygame.time.get_ticks()
+ self._delay = 1000 / fps
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+
+ if textfileName != '':
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ while currentLine != '':
+ animValues = currentLine.split(",")
+ #This is a list called animations that at each position contains a list of two values. the first value is the start position
+ #of the given animation and the second is the end position of the given animation
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()
+
+ # Call update to set our first image.
+ #self.update(pygame.time.get_ticks())
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+ def update(self, t):
+ # This method updates the animation in a situation where there is only one animation contained within the object.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame and continues to check over and over until it is not
+ while self._frame >= len(self._images):
+ #since we are past the final frame it is now figuring out how many frames past the final frame we have actually gone
+ framesPast = self._frame - len(self._images)
+ #sets the current frame to the frame it should be at
+ self._frame = framesPast - 1
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def updateAnimation(self, t, animName):
+ # This method updates the animation based on the start and end frame of the specific animation you are on.
+ #This means that if your object contains multiple animations, you can use this method to reference the exact
+ #animation that you are using.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #Checks to make sure that the current frame is actually set to a position within the animation
+ if self._frame < self.animations.get(animName)[0] or self._frame > self.animations.get(animName)[1]:
+ #corrects the position of the current frame
+ self._frame = self.animations.get(animName)[0]
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame of the current animation and continues to check over and over
+ #until it is not
+ while self._frame >= self.animations.get(animName)[1]:
+ #Determines how many frames past the final frame of the animation it is
+ framesPast = self._frame - self.animations.get(animName)[1]
+ #Sets the current frame to the frame it should be at
+ self._frame = framesPast - 1 + self.animations.get(animName)[0]
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def nextFrame(self):
+ # This definition is designed to simply move to the next frame.
+ # All of the other definitions only move to the nex frame if
+ # enough time has passed based on the framerate. With this
+ # definition I can go right to the next frame allowing me to
+ # see how fast a framerate I can get to and not be limited by
+ # what I define.
+
+ self._frame += 1
+ if self._frame >= len(self._images):
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+ self.image = self._images[self._frame]
+
+ def nextAnimFrame(self, animName):
+ # This definition is designed to simply move to the next frame of the specified animation.
+ if self._frame < self.animations[animName][0]:
+ self._frame = self.animations[animName][0]
+
+ self._frame += 1
+ if self._frame > self.animations[animName][1]:
+ framesPast = self._frame - self.animations[animName][1]
+ self._frame = framesPast - 1 + self.animations[animName][0]
+ self.image = self._images[self._frame]
+
diff --git a/anim/DrawableObjectTests/Buttons.psd b/anim/DrawableObjectTests/Buttons.psd
new file mode 100755
index 0000000..a1571e2
--- /dev/null
+++ b/anim/DrawableObjectTests/Buttons.psd
Binary files differ
diff --git a/anim/DrawableObjectTests/DrawableObject.py b/anim/DrawableObjectTests/DrawableObject.py
new file mode 100755
index 0000000..07a5613
--- /dev/null
+++ b/anim/DrawableObjectTests/DrawableObject.py
@@ -0,0 +1,156 @@
+import pygame
+
+class DrawableObject(pygame.sprite.Sprite):
+
+ def __init__(self,images,textfileName,fps = 10, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
+ pygame.sprite.Sprite.__init__(self)
+ cnt = 0
+
+ #self._originals = images
+ #self._images = images
+ self._images = []
+ self._origImages = []
+ while cnt < len(images):
+ self._images.append(images[cnt][0].convert())
+ self._origImages.append(images[cnt][0].convert())
+ cnt += 1
+ self._start = pygame.time.get_ticks()
+ self.image = self._images[0]
+ self._delay = 1000 / fps
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+ self._current_anim = ""
+ self.xPos = x
+ self.yPos = y
+ self.xSpeed = xVelocity
+ self.ySpeed = yVelocity
+ self.myAngle = 0
+ self.xSize = 40
+ self.ySize = 40
+
+ if textfileName != '':
+
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ while currentLine != '':
+
+ animValues = currentLine.split(",")
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()
+
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+ #self._originals.extend(images)
+
+ def goToAnim(self, animName):
+
+ cnt = 0
+ while cnt < len(animations):
+
+ if animations[cnt] == animName:
+ self._current_anim = animName
+ self._frame = self.animations[animName][0]
+ self.image = self._images[self._frame]
+ cnt = len(animations)
+ cnt += 1
+
+ def move(self):
+
+ self.xPos += self.xSpeed
+ self.yPos += self.ySpeed
+
+ self.image[0].get_rect().move(self.xPos,self.yPos)
+
+ def nudge(self, xNudge = 0, yNudge = 0):
+
+ self.xPos += xNudge
+ self.yPos += yNudge
+
+ self.image[0].get_rect().move(self.xPos,self.yPos)
+
+ def scale(self, newXSize = None, newYSize = None):
+
+ if newXSize != None: self.xSize = newXSize
+ if newYSize != None: self.ySize = newYSize
+
+ cnt = 0
+ while cnt < len(self._images):
+
+ self._origImages[cnt] = pygame.transform.scale(self._origImages[cnt], (self.xSize, self.ySize))
+ self._images[cnt] = self._origImages[cnt]
+ cnt += 1
+
+ def getXSize(self):
+
+ return self.xSize
+
+ def getYSize(self):
+
+ return self.ySize
+
+ def rotate(self,angle):
+
+ cnt = 0
+
+ self.myAngle += angle
+ while cnt < len(self._images):
+
+ self._images[cnt] = pygame.transform.rotate(self._origImages[cnt], self.myAngle)
+ cnt += 1
+
+ def getRotation(self):
+
+ return self.myAngle
+
+ def setPosition(self, x = None, y = None):
+
+ if x != None and x >= 0: self.xPos = x
+ if y != None and y >= 0: self.yPos = y
+
+ def getXPos(self):
+
+ return self.xPos
+
+ def getYPos(self):
+
+ return self.yPos
+
+ def setSpeed(self, xVelocity = None, yVelocity = None):
+
+ if xVelocity != None: self.xSpeed = xVelocity
+ if yVelocity != None: self.ySpeed = yVelocity
+
+ def getXSpeed(self):
+
+ return self.xSpeed
+
+ def getYSpeed(self):
+
+ return self.ySpeed
+
+ def calcColorKey(self):
+
+ myColorKey = images[0][0].get_at((0,0))
+ setColorKey(myColorKey)
+
+ def setColorKey(self, aColor):
+
+ cnt = 0
+ while cnt < len(self._images):
+ self._images[cnt][0].set_colorkey(aColor)
+ cnt += 1
+
+ def update(self, t):
+ pass
+
+ def updateCurrnetAnimation(self, t):
+ pass
+
+ def nextFrame(self):
+ pass
+
+ def nextCurrentAnimFrame(self):
+ pass
diff --git a/anim/DrawableObjectTests/DrawableObjectMoveScaleTest.py b/anim/DrawableObjectTests/DrawableObjectMoveScaleTest.py
new file mode 100755
index 0000000..c1bff71
--- /dev/null
+++ b/anim/DrawableObjectTests/DrawableObjectMoveScaleTest.py
@@ -0,0 +1,102 @@
+#! /usr/bin/env python
+from Spritesheet import Spritesheet
+from DynamicDrawableObject import DynamicDrawableObject
+from Scene import Scene
+import pygame
+import time
+pygame.init()
+
+img={}
+ft="" #filetype
+r=0 #frame refreshes
+i=1 #cycles images
+SIZE = WIDTH, HEIGHT = 600,400 #screen sizes
+t=0 #trial number
+
+BACKGROUNDR=152
+BACKGROUNDG=0
+BACKGROUNDB=152
+
+screen = pygame.display.set_mode(SIZE) #Screen Set 600x400
+
+screen.fill((BACKGROUNDR, BACKGROUNDG, BACKGROUNDB))
+
+def blitAndFlip():
+ screen.fill((BACKGROUNDR, BACKGROUNDG, BACKGROUNDB))
+ cnt = 0
+ while cnt < myScene.getListSize():
+
+ screen.blit(myScene.getObject(cnt).image, [myScene.getObject(cnt).getXPos(),myScene.getObject(cnt).getYPos()])
+ cnt += 1
+
+
+ pygame.display.flip()
+
+switch1 = [
+ [pygame.image.load("%sa1/1%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/2%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/3%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/4%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/5%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/6%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/7%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/8%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/9%s"%("IndividualFrames/bmp16/",".bmp"))]
+]
+
+switch3 = [
+ [pygame.image.load("%sa1/1%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/2%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/3%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/4%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/5%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/6%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/7%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/8%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa1/9%s"%("IndividualFrames/bmp16/",".bmp"))]
+]
+
+switch2 = [
+ [pygame.image.load("%sa2/1%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/2%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/3%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/4%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/5%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/6%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/7%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/8%s"%("IndividualFrames/bmp16/",".bmp"))],
+ [pygame.image.load("%sa2/9%s"%("IndividualFrames/bmp16/",".bmp"))]
+]
+
+dynamicObj = DynamicDrawableObject(switch1,'',1,39,3, 2, 2)
+secondDynamicObj = DynamicDrawableObject(switch1,'',1,39,100, 3, 3)
+staticObj = DynamicDrawableObject(switch2,'',1,40,43, 4, 4)
+
+initialList = [dynamicObj, secondDynamicObj]
+secondaryList = [staticObj]
+
+myScene = Scene(initialList)
+myScene.addObjects(secondaryList)
+
+myScene.nextFrame()
+blitAndFlip()
+time.sleep(2)
+myScene.getObject(1).scale(100, 100)
+myScene.getObject(1).nextFrame()
+myScene.getObject(0).nextFrame()
+myScene.getObject(2).nextFrame()
+blitAndFlip()
+time.sleep(2)
+myScene.getObject(1).rotate(45)
+myScene.getObject(1).nextFrame()
+myScene.getObject(0).nextFrame()
+myScene.getObject(2).nextFrame()
+blitAndFlip()
+time.sleep(2)
+myScene.getObject(1).rotate(-45)
+myScene.getObject(1).nextFrame()
+myScene.getObject(0).nextFrame()
+myScene.getObject(2).nextFrame()
+blitAndFlip()
+time.sleep(2)
+
diff --git a/anim/DrawableObjectTests/DynamicDrawableObject.py b/anim/DrawableObjectTests/DynamicDrawableObject.py
new file mode 100755
index 0000000..3b3722d
--- /dev/null
+++ b/anim/DrawableObjectTests/DynamicDrawableObject.py
@@ -0,0 +1,89 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite):
+
+ def __init__(self,images,textfileName,fps = 10, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
+
+ DrawableObject.__init__(self, images, textfileName, fps, x, y, xVelocity, yVelocity)
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+ def update(self, t):
+
+ timePassed = t + self._last_update
+ if timePassed > self._delay:
+
+ self._frame += timePassed/self._delay
+ while self._frame >= len(self._images):
+
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast - 1
+
+ self.image = self._images[self._frame]
+ self._last_update = timePassed%self._delay
+ self._last_update = timePassed
+
+ def updateCurrentAnimation(self, t):
+
+ cnt = 0
+ while cnt < len(animations):
+
+ if animations[cnt] == self._current_anim:
+
+ timePassed = t + self._last_update
+ if timePassed > self._delay:
+
+ if self._frame < self.animations.get(self._current_anim)[0] or self._frame > self.animations.get(self._current_anim)[1]: #checking if I am in the animation and putting me there if I am not
+
+ self._frame = self.animations.get(self._current_anim)[0]
+
+ self._frame += timePassed/self._delay
+ while self._frame >= self.animations.get(self._current_anim)[1]:
+
+ framesPast = self._frame - self.animations.get(self._current_anim)[1]
+ self._frame = framesPast - 1 + self.animations.get(self._current_anim)[0]
+
+ self.image = self._images[self._frame]
+ self._last_update = timePassed%self._delay
+ self._last_update = timePassed
+
+ cnt = len(animations)
+
+ cnt += 1
+
+ def nextFrame(self):
+
+ self._frame += 1
+ if self._frame >= len(self._images):
+
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+
+ self.image = self._images[self._frame]
+
+ def nextCurrentAnimFrame(self):
+
+ cnt = 0
+ while cnt < len(animations):
+
+ if animations[cnt] == self._current_anim:
+
+ if self._frame < self.animations[self._current_anim][0] or self._frame > self.animations[self._current_anim][1]:
+
+ self._frame = self.animations[self._current_anim][0]
+ else:
+ self._frame += 1
+
+ if self._frame > self.animations[self._current_anim][1]:
+
+ framesPast = self._frame - self.animations[self._current_anim][1]
+ self._frame = framesPast - 1 + self.animations[self._current_anim][0]
+
+ self.image = self._images[self._frame]
+
+ cnt = len(anmiations)
+
+ cnt += 1
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/1.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/1.bmp
new file mode 100755
index 0000000..57630e3
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/1.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/2.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/2.bmp
new file mode 100755
index 0000000..90af77a
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/2.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/3.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/3.bmp
new file mode 100755
index 0000000..1751a4a
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/3.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/4.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/4.bmp
new file mode 100755
index 0000000..1f292d1
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/4.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/5.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/5.bmp
new file mode 100755
index 0000000..fd8cc0e
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/5.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/6.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/6.bmp
new file mode 100755
index 0000000..df3a2eb
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/6.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/7.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/7.bmp
new file mode 100755
index 0000000..51b0052
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/7.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/8.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/8.bmp
new file mode 100755
index 0000000..9302c64
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/8.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/9.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/9.bmp
new file mode 100755
index 0000000..f5c6191
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a1/9.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/1.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/1.bmp
new file mode 100755
index 0000000..4def064
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/1.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/2.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/2.bmp
new file mode 100755
index 0000000..3750af4
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/2.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/3.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/3.bmp
new file mode 100755
index 0000000..636c6f3
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/3.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/4.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/4.bmp
new file mode 100755
index 0000000..646b407
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/4.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/5.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/5.bmp
new file mode 100755
index 0000000..11a9bf5
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/5.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/6.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/6.bmp
new file mode 100755
index 0000000..ca1ba7b
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/6.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/7.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/7.bmp
new file mode 100755
index 0000000..9375c15
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/7.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/8.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/8.bmp
new file mode 100755
index 0000000..53b66f9
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/8.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/9.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/9.bmp
new file mode 100755
index 0000000..088558c
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp16/a2/9.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/1.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/1.bmp
new file mode 100755
index 0000000..e910cec
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/1.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/2.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/2.bmp
new file mode 100755
index 0000000..0545f38
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/2.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/3.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/3.bmp
new file mode 100755
index 0000000..a154b29
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/3.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/4.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/4.bmp
new file mode 100755
index 0000000..4ab21f9
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/4.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/5.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/5.bmp
new file mode 100755
index 0000000..0a55d39
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/5.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/6.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/6.bmp
new file mode 100755
index 0000000..ad3f1b1
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/6.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/7.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/7.bmp
new file mode 100755
index 0000000..915ab5b
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/7.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/8.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/8.bmp
new file mode 100755
index 0000000..b36287d
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/8.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/9.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/9.bmp
new file mode 100755
index 0000000..2cab5a4
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a1/9.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/1.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/1.bmp
new file mode 100755
index 0000000..1b41dff
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/1.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/2.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/2.bmp
new file mode 100755
index 0000000..71cca69
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/2.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/3.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/3.bmp
new file mode 100755
index 0000000..a374206
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/3.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/4.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/4.bmp
new file mode 100755
index 0000000..37c4304
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/4.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/5.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/5.bmp
new file mode 100755
index 0000000..51f1acb
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/5.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/6.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/6.bmp
new file mode 100755
index 0000000..483043c
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/6.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/7.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/7.bmp
new file mode 100755
index 0000000..d99e779
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/7.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/8.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/8.bmp
new file mode 100755
index 0000000..223b87e
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/8.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/9.bmp b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/9.bmp
new file mode 100755
index 0000000..088a0f5
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/bmp24/a2/9.bmp
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/1.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/1.gif
new file mode 100755
index 0000000..4a89216
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/1.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/2.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/2.gif
new file mode 100755
index 0000000..b5019d8
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/2.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/3.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/3.gif
new file mode 100755
index 0000000..a87ddc6
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/3.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/4.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/4.gif
new file mode 100755
index 0000000..2a398e6
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/4.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/5.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/5.gif
new file mode 100755
index 0000000..93e5b8d
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/5.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/6.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/6.gif
new file mode 100755
index 0000000..0e73825
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/6.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/7.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/7.gif
new file mode 100755
index 0000000..061669a
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/7.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/8.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/8.gif
new file mode 100755
index 0000000..90dcfda
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/8.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a1/9.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a1/9.gif
new file mode 100755
index 0000000..aa194d9
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a1/9.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/1.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/1.gif
new file mode 100755
index 0000000..09134f4
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/1.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/2.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/2.gif
new file mode 100755
index 0000000..d9ebbc2
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/2.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/3.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/3.gif
new file mode 100755
index 0000000..de17bd4
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/3.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/4.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/4.gif
new file mode 100755
index 0000000..87450de
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/4.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/5.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/5.gif
new file mode 100755
index 0000000..f95b8d9
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/5.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/6.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/6.gif
new file mode 100755
index 0000000..3462272
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/6.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/7.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/7.gif
new file mode 100755
index 0000000..ac5f084
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/7.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/8.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/8.gif
new file mode 100755
index 0000000..d9d3989
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/8.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gif/a2/9.gif b/anim/DrawableObjectTests/IndividualFrames/gif/a2/9.gif
new file mode 100755
index 0000000..bcdd274
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gif/a2/9.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/1.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/1.gif
new file mode 100755
index 0000000..2aad244
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/1.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/2.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/2.gif
new file mode 100755
index 0000000..ed22525
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/2.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/3.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/3.gif
new file mode 100755
index 0000000..246cd12
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/3.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/4.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/4.gif
new file mode 100755
index 0000000..722f240
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/4.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/5.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/5.gif
new file mode 100755
index 0000000..6a71348
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/5.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/6.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/6.gif
new file mode 100755
index 0000000..0dd2145
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/6.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/7.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/7.gif
new file mode 100755
index 0000000..1e9914b
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/7.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/8.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/8.gif
new file mode 100755
index 0000000..390124b
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/8.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a1/9.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a1/9.gif
new file mode 100755
index 0000000..61c8c3c
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a1/9.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/1.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/1.gif
new file mode 100755
index 0000000..a79f1e0
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/1.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/2.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/2.gif
new file mode 100755
index 0000000..b2579e3
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/2.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/3.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/3.gif
new file mode 100755
index 0000000..42f2c74
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/3.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/4.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/4.gif
new file mode 100755
index 0000000..61b944a
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/4.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/5.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/5.gif
new file mode 100755
index 0000000..865f4c7
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/5.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/6.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/6.gif
new file mode 100755
index 0000000..9fa7cf2
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/6.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/7.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/7.gif
new file mode 100755
index 0000000..d7627b2
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/7.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/8.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/8.gif
new file mode 100755
index 0000000..965acc1
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/8.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/gift/a2/9.gif b/anim/DrawableObjectTests/IndividualFrames/gift/a2/9.gif
new file mode 100755
index 0000000..0509dad
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/gift/a2/9.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/1.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/1.png
new file mode 100755
index 0000000..663ca83
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/1.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/2.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/2.png
new file mode 100755
index 0000000..6f44ab5
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/2.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/3.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/3.png
new file mode 100755
index 0000000..c49ab7e
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/3.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/4.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/4.png
new file mode 100755
index 0000000..63eb7e2
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/4.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/5.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/5.png
new file mode 100755
index 0000000..2aaa600
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/5.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/6.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/6.png
new file mode 100755
index 0000000..8fa9737
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/6.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/7.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/7.png
new file mode 100755
index 0000000..1de0311
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/7.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/8.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/8.png
new file mode 100755
index 0000000..7d6332a
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/8.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a1/9.png b/anim/DrawableObjectTests/IndividualFrames/png/a1/9.png
new file mode 100755
index 0000000..5a8b0ea
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a1/9.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/1.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/1.png
new file mode 100755
index 0000000..98b3d72
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/1.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/2.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/2.png
new file mode 100755
index 0000000..6ec3dac
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/2.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/3.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/3.png
new file mode 100755
index 0000000..157dfc8
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/3.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/4.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/4.png
new file mode 100755
index 0000000..5719ab6
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/4.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/5.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/5.png
new file mode 100755
index 0000000..3cfd8a3
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/5.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/6.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/6.png
new file mode 100755
index 0000000..750ed8b
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/6.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/7.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/7.png
new file mode 100755
index 0000000..ce7756e
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/7.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/8.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/8.png
new file mode 100755
index 0000000..e28a906
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/8.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/png/a2/9.png b/anim/DrawableObjectTests/IndividualFrames/png/a2/9.png
new file mode 100755
index 0000000..b6b2cd8
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/png/a2/9.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/1.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/1.png
new file mode 100755
index 0000000..dab1239
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/1.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/2.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/2.png
new file mode 100755
index 0000000..56312a7
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/2.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/3.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/3.png
new file mode 100755
index 0000000..4ceb540
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/3.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/4.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/4.png
new file mode 100755
index 0000000..38d640a
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/4.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/5.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/5.png
new file mode 100755
index 0000000..dcc14d4
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/5.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/6.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/6.png
new file mode 100755
index 0000000..cb2f933
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/6.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/7.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/7.png
new file mode 100755
index 0000000..497ed6f
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/7.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/8.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/8.png
new file mode 100755
index 0000000..693ac1e
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/8.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a1/9.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/9.png
new file mode 100755
index 0000000..e83b570
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a1/9.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/1.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/1.png
new file mode 100755
index 0000000..06f2b7c
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/1.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/2.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/2.png
new file mode 100755
index 0000000..f20ed10
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/2.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/3.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/3.png
new file mode 100755
index 0000000..6681f2e
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/3.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/4.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/4.png
new file mode 100755
index 0000000..ff3f0f1
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/4.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/5.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/5.png
new file mode 100755
index 0000000..1152066
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/5.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/6.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/6.png
new file mode 100755
index 0000000..458e680
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/6.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/7.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/7.png
new file mode 100755
index 0000000..4097b74
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/7.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/8.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/8.png
new file mode 100755
index 0000000..e6ee9b2
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/8.png
Binary files differ
diff --git a/anim/DrawableObjectTests/IndividualFrames/pngt/a2/9.png b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/9.png
new file mode 100755
index 0000000..314aabf
--- /dev/null
+++ b/anim/DrawableObjectTests/IndividualFrames/pngt/a2/9.png
Binary files differ
diff --git a/anim/DrawableObjectTests/Room.gif b/anim/DrawableObjectTests/Room.gif
new file mode 100644
index 0000000..798ebf1
--- /dev/null
+++ b/anim/DrawableObjectTests/Room.gif
Binary files differ
diff --git a/anim/DrawableObjectTests/Scene.py b/anim/DrawableObjectTests/Scene.py
new file mode 100644
index 0000000..959fd87
--- /dev/null
+++ b/anim/DrawableObjectTests/Scene.py
@@ -0,0 +1,165 @@
+import pygame
+
+class Scene:
+
+ def __init__(self, drawableObjects):
+
+ self._my_Objects = []
+
+ cnt = 0
+ while cnt < len(drawableObjects):
+ self._my_Objects.append([drawableObjects[cnt],drawableObjects[cnt].getXPos(),drawableObjects[cnt].getYPos()])
+ cnt += 1
+
+ self.xPos = 0
+ self.yPos = 0
+ self.xSize = 0
+ self.ySize = 0
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def calcPosition(self):
+
+ lowestX = 9000
+ lowestY = 9000
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+ if self._my_Objects[cnt][0].getXPos() < lowestX: lowestX = self._my_Objects[cnt][0].getXPos()
+ if self._my_Objects[cnt][0].getYPos() < lowestY: lowestY = self._my_Objects[cnt][0].getYPos()
+ cnt += 1
+
+ self.xPos = lowestX
+ self.yPos = lowestY
+
+ def calcSize(self):
+
+ highestX = 0
+ highestY = 0
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+ if self._my_Objects[cnt][0].getXPos() + self._my_Objects[cnt][0].getXSize() > highestX: highestX = self._my_Objects[cnt][0].getXPos() + self._my_Objects[cnt][0].getXSize()
+ if self._my_Objects[cnt][0].getYPos() + self._my_Objects[cnt][0].getYSize() > highestY: highestY = self._my_Objects[cnt][0].getYPos() + self._my_Objects[cnt][0].getYSize()
+ cnt += 1
+
+ self.xSize = highestX - self.xPos
+ self.ySize = highestY - self.yPos
+
+ def addObjects(self, newDrawableObjects):
+
+ cnt = 0
+ while cnt < len(newDrawableObjects):
+ self._my_Objects.append([newDrawableObjects[cnt],newDrawableObjects[cnt].getXPos(),newDrawableObjects[cnt].getYPos()])
+ cnt += 1
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def setRelativePositions(self):
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+ self._my_Objects[cnt][1] = self._my_Objects[cnt][1] - self.xPos
+ self._my_Objects[cnt][2] = self._my_Objects[cnt][2] - self.yPos
+ cnt += 1
+
+ def removeObject(self, index):
+
+ if index < len(self._my_Objects): del self._my_Objects[index]
+
+ def getObject(self, index):
+
+ if index < len(self._my_Objects):
+ return self._my_Objects[index][0]
+
+ def getListSize(self):
+ return len(self._my_Objects)
+
+ def moveObjects(self):
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+
+ self._my_Objects[cnt][0].move()
+ cnt += 1
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def moveScene(self, xNudge = 0, yNudge = 0):
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+
+ self._my_Objects[cnt][0].nudge(xNudge, yNudge)
+ cnt += 1
+
+ self.calcPosition()
+
+ def setPosition(self, newXPos = None, newYPos = None):
+
+ if newXPos != None: self.xPos = newXPos
+ if newYPos != None: self.yPos = newYPos
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+
+ self._my_Objects[cnt][0].setPosition(self.xPos + self._my_Objects[cnt][1], self.yPos + self._my_Objects[cnt][2])
+ cnt += 1
+
+ def getXPos(self):
+ return self.xPos
+
+ def getYPos(self):
+ return self.yPos
+
+ def getXSize(self):
+ return self.xSize
+
+ def getYSize(self):
+ return self.ySize
+
+ def scaleObjects(self, newXSize = None, newYSize = None):
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+ self._my_Objects[cnt][0].scale(newXSize, newYSize)
+ cnt += 1
+
+ def scaleScene(self, newXSize = None, newYSize = None):
+
+ xScale = 1
+ yScale = 1
+
+ if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
+ if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+ self._my_Objects[cnt][0].scale(xScale * self._my_Objects[cnt][0].getXSize(), yScale * self._my_Objects[cnt][0].getYSize())
+ self._my_Objects[cnt][1] = xScale * self._my_Objects[cnt][1]
+ self._my_Objects[cnt][2] = yScale * self._my_Objects[cnt][2]
+ cnt += 1
+
+ self.setPosition()
+
+ def updateAnimations(self, t):
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+
+ self._my_Objects[cnt][0].updateCurrentAnimation(t)
+ cnt += 1
+
+ def nextFrame(self):
+
+ cnt = 0
+ while cnt < len(self._my_Objects):
+
+ self._my_Objects[cnt][0].nextFrame()
+ cnt += 1
diff --git a/anim/DrawableObjectTests/Spritesheet.py b/anim/DrawableObjectTests/Spritesheet.py
new file mode 100755
index 0000000..ddb18a8
--- /dev/null
+++ b/anim/DrawableObjectTests/Spritesheet.py
@@ -0,0 +1,31 @@
+import pygame
+
+class Spritesheet:
+ """
+ Class from http://www.scriptedfun.com/transcript-2-using-sprite-sheets-and-drawing-the-background/
+
+ This class can be used to seporate images from the sprite sheet
+ """
+ def __init__(self, filename):
+ self.sheet = pygame.image.load(filename).convert()
+
+ def imgat(self, rect, myColorKey = None):
+ rect = pygame.Rect(rect)
+ image = pygame.Surface(rect.size).convert()
+ if myColorKey == None: myColorKey = image.get_at((0,0))
+ image.set_colorkey(myColorKey)
+ image.blit(self.sheet, (0, 0), rect)
+ return image
+
+ def imgsat(self, rects, myColorKey = None):
+ imgs = []
+ for rect in rects:
+ imgs.append(self.imgat(rect, myColorKey))
+ return imgs
+
+ def img_extract( self, cols, rows, width, height, myColorKey = None):
+ rect_list = []
+ for y in range(0, rows):
+ for x in range(0, cols):
+ rect_list.append( (width*x, height*y, width, height,) )
+ return self.imgsat( rect_list, myColorKey) \ No newline at end of file
diff --git a/anim/DrawableObjectTests/StaticDrawableObject.py b/anim/DrawableObjectTests/StaticDrawableObject.py
new file mode 100755
index 0000000..6486eb2
--- /dev/null
+++ b/anim/DrawableObjectTests/StaticDrawableObject.py
@@ -0,0 +1,32 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class StaticDrawableObject(pygame.sprite.Sprite):
+
+ def __init __(self,images,textfileName,fps = 10):
+ pygame.sprite.Sprite.__init__(self)
+ self._images = images
+
+ self._start = pygame.time.get_ticks()
+ self._delay = 1000 / fps
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+
+ if textfileName != '':
+
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ while currentLine != '':
+
+ animValues = currentLine.split(",")
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()
+
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+
+
diff --git a/anim/DrawableObjectTests/TestObject b/anim/DrawableObjectTests/TestObject
new file mode 100644
index 0000000..3dbdc60
--- /dev/null
+++ b/anim/DrawableObjectTests/TestObject
@@ -0,0 +1,16 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class TestObject:
+
+ def __init__(self, drawableObject):
+
+ self.myDrawableObject = drawableObject
+
+ def changeSize(self, x, y):
+
+ self.myDrawableObject.scale(x,y)
+
+ def getDrawable(self):
+
+ return self.myDrawableObject \ No newline at end of file
diff --git a/anim/DrawableObjectTests/TestObject.py b/anim/DrawableObjectTests/TestObject.py
new file mode 100644
index 0000000..3dbdc60
--- /dev/null
+++ b/anim/DrawableObjectTests/TestObject.py
@@ -0,0 +1,16 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class TestObject:
+
+ def __init__(self, drawableObject):
+
+ self.myDrawableObject = drawableObject
+
+ def changeSize(self, x, y):
+
+ self.myDrawableObject.scale(x,y)
+
+ def getDrawable(self):
+
+ return self.myDrawableObject \ No newline at end of file
diff --git a/anim/DrawableObjectTests/TestObject.txt b/anim/DrawableObjectTests/TestObject.txt
new file mode 100644
index 0000000..3dbdc60
--- /dev/null
+++ b/anim/DrawableObjectTests/TestObject.txt
@@ -0,0 +1,16 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class TestObject:
+
+ def __init__(self, drawableObject):
+
+ self.myDrawableObject = drawableObject
+
+ def changeSize(self, x, y):
+
+ self.myDrawableObject.scale(x,y)
+
+ def getDrawable(self):
+
+ return self.myDrawableObject \ No newline at end of file
diff --git a/anim/DrawableObjectTests/boxes.py b/anim/DrawableObjectTests/boxes.py
new file mode 100644
index 0000000..5b444b6
--- /dev/null
+++ b/anim/DrawableObjectTests/boxes.py
@@ -0,0 +1,32 @@
+import pygame
+
+class UpDownBox(pygame.sprite.Sprite):
+ def __init__(self, imagesList, initial_position):
+ pygame.sprite.Sprite.__init__(self)
+ self.images = imagesList
+ self.listLen = len(imagesList)
+ self.listPos = 0
+ self.image = imagesList[self.listPos]
+ self.rect = self.image.get_rect()
+ self.rect.topleft = initial_position
+ self.going_down = True # Start going downwards
+ self.next_update_time = 0 # update() hasn't been called yet.
+
+ def update(self, current_time, bottom):
+ # Update every 10 milliseconds = 1/100th of a second.
+ if self.next_update_time < current_time:
+
+ # If we're at the top or bottom of the screen, switch directions.
+ if self.rect.bottom == bottom - 1: self.going_down = False
+ elif self.rect.top == 0: self.going_down = True
+
+ # Move our position up or down by one pixel
+ if self.going_down: self.rect.top += 1
+ else: self.rect.top -= 1
+
+ if self.listPos < self.listLen - 1:
+ self.listPos += 1
+ else:
+ self.listPos = 0
+ self.image = self.images[self.listPos]
+ self.next_update_time = current_time
diff --git a/anim/DrawableObjectTests/goblin.png b/anim/DrawableObjectTests/goblin.png
new file mode 100644
index 0000000..6bdca0f
--- /dev/null
+++ b/anim/DrawableObjectTests/goblin.png
Binary files differ
diff --git a/anim/DrawableObjectTests/renderupdates.py b/anim/DrawableObjectTests/renderupdates.py
new file mode 100644
index 0000000..30ffe5b
--- /dev/null
+++ b/anim/DrawableObjectTests/renderupdates.py
@@ -0,0 +1,71 @@
+import pygame
+from pygame.locals import *
+from boxes import UpDownBox
+from time import time
+
+pygame.init()
+boxes = pygame.sprite.RenderUpdates()
+boxesTwo = pygame.sprite.RenderUpdates()
+boxesThree = pygame.sprite.RenderUpdates()
+
+switch1 = [
+ pygame.image.load("%sa1/1%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/2%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/3%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/4%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/5%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/6%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/7%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/8%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/9%s"%("IndividualFrames/bmp16/",".bmp"))
+]
+
+switch2 = [
+ pygame.image.load("%sa1/1%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/2%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/3%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/4%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/5%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/6%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/7%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/8%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/9%s"%("IndividualFrames/bmp16/",".bmp"))
+]
+
+switch3 = [
+ pygame.image.load("%sa1/1%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/2%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/3%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/4%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/5%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/6%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/7%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/8%s"%("IndividualFrames/bmp16/",".bmp")),
+ pygame.image.load("%sa1/9%s"%("IndividualFrames/bmp16/",".bmp"))
+]
+
+boxes.add(UpDownBox(switch1, (0, 0)))
+boxes.add(UpDownBox(switch1, (100, 100)))
+boxes.add(UpDownBox(switch1, (200, 200)))
+
+
+screen = pygame.display.set_mode([1200, 900])
+boxesTwo.add(UpDownBox([pygame.image.load("goblin.png")], (0,300)))
+background = pygame.image.load("Room.gif")
+#background.fill(pygame.image.load("Room.gif"))
+screen.blit(background, [0, 0])
+pygame.display.flip()
+boxesTwo.update(pygame.time.get_ticks(), 700)
+rectlist = boxesTwo.draw(screen)
+pygame.display.update(rectlist)
+start = time()
+for i in range(2000):
+ boxes.update(pygame.time.get_ticks(), 700)
+ boxesTwo.update(pygame.time.get_ticks(), 700)
+ rectlist = boxesTwo.draw(screen)
+ rectlist.extend(boxes.draw(screen))
+ pygame.display.update(rectlist)
+ boxesTwo.clear(screen, background)
+ boxes.clear(screen, background)
+
+print 2000/(time() - start)
diff --git a/devtools/CompleteTestKit/.to-do/AnimatedSprite.py b/devtools/CompleteTestKit/.to-do/AnimatedSprite.py
new file mode 100755
index 0000000..03fcfcd
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/AnimatedSprite.py
@@ -0,0 +1,148 @@
+import pygame
+
+class Spritesheet:
+ """
+ Class from http://www.scriptedfun.com/transcript-2-using-sprite-sheets-and-drawing-the-background/
+
+ This class can be used to seporate images from the sprite sheet
+ """
+ def __init__(self, filename):
+ self.sheet = pygame.image.load(filename)#.convert()
+
+ def imgat(self, rect):
+ rect = pygame.Rect(rect)
+ image = pygame.Surface(rect.size)#.convert()
+ image.blit(self.sheet, (0, 0), rect)
+ return image
+
+ def imgsat(self, rects):
+ imgs = []
+ for rect in rects:
+ imgs.append(self.imgat(rect))
+ return imgs
+
+ def img_extract( self, cols, rows, width, height ):
+ rect_list = []
+ for y in range(0, rows):
+ for x in range(0, cols):
+ rect_list.append( (width*x, height*y, width, height) )
+ return self.imgsat( rect_list)
+
+
+class AnimatedSprite(pygame.sprite.Sprite):
+ """
+ http://shinylittlething.com/2009/07/21/pygame-and-animated-sprites/
+ """
+
+ def __init__(self,images,textfileName,fps = 10):
+ pygame.sprite.Sprite.__init__(self)
+ self._images = images
+
+ # Track the time we started, and the time between updates.
+ # Then we can figure out when we have to switch the image.
+ self._start = pygame.time.get_ticks()
+ self._delay = 1000 / fps
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+
+ if textfileName != '':
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ while currentLine != '':
+ animValues = currentLine.split(",")
+ #This is a list called animations that at each position contains a list of two values. the first value is the start position
+ #of the given animation and the second is the end position of the given animation
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()
+
+ # Call update to set our first image.
+ #self.update(pygame.time.get_ticks())
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+ def update(self, t):
+ # This method updates the animation in a situation where there is only one animation contained within the object.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame and continues to check over and over until it is not
+ while self._frame >= len(self._images):
+ #since we are past the final frame it is now figuring out how many frames past the final frame we have actually gone
+ framesPast = self._frame - len(self._images)
+ #sets the current frame to the frame it should be at
+ self._frame = framesPast - 1
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def updateAnimation(self, t, animName):
+ # This method updates the animation based on the start and end frame of the specific animation you are on.
+ #This means that if your object contains multiple animations, you can use this method to reference the exact
+ #animation that you are using.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+
+ #Checks to make sure that the current frame is actually set to a position within the animation
+ if self._frame < self.animations.get(animName)[0] or self._frame > self.animations.get(animName)[1]:
+ #corrects the position of the current frame
+ self._frame = self.animations.get(animName)[0]
+
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+
+ #checks if the current frame is past the final frame of the current animation and continues to check over and over
+ #until it is not
+ while self._frame >= self.animations.get(animName)[1]:
+ #Determines how many frames past the final frame of the animation it is
+ framesPast = self._frame - self.animations.get(animName)[1]
+
+ #Sets the current frame to the frame it should be at
+ self._frame = framesPast - 1 + self.animations.get(animName)[0]
+
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def nextFrame(self):
+ # This definition is designed to simply move to the next frame.
+ # All of the other definitions only move to the nex frame if
+ # enough time has passed based on the framerate. With this
+ # definition I can go right to the next frame allowing me to
+ # see how fast a framerate I can get to and not be limited by
+ # what I define.
+
+ self._frame += 1
+ if self._frame >= len(self._images):
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+ self.image = self._images[self._frame]
+
+ def nextAnimFrame(self, animName):
+ # This definition is designed to simply move to the next frame of the specified animation.
+ if self._frame < self.animations[animName][0]:
+ self._frame = self.animations[animName][0]
+
+ self._frame += 1
+ if self._frame > self.animations[animName][1]:
+ framesPast = self._frame - self.animations[animName][1]
+ self._frame = framesPast - 1 + self.animations[animName][0]
+ self.image = self._images[self._frame]
diff --git a/devtools/CompleteTestKit/.to-do/AnimatedSpriteTest.py b/devtools/CompleteTestKit/.to-do/AnimatedSpriteTest.py
new file mode 100755
index 0000000..1be0d6a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/AnimatedSpriteTest.py
@@ -0,0 +1,309 @@
+#! /usr/bin/env python
+
+from AnimatedSprite import Spritesheet
+from AnimatedSprite import AnimatedSprite
+import pygame
+import time
+
+pygame.init()
+make=input("How many images would you like to load? ")
+img={}
+ft="" #filetype
+r=0 #frame refreshes
+i=1 #cycles images
+SIZE = WIDTH, HEIGHT = 600,400 #screen sizes
+t=0 #trial number
+
+BACKGROUNDR=152
+BACKGROUNDG=0
+BACKGROUNDB=152
+
+AnimPerLineArr=[
+ [".bmp","art/BMP16/multiAnimSheet/"] ,
+ [".bmp","art/BMP24/multiAnimSheet/"] ,
+ [".gif", "art/GIF/multiAnimSheet/" ] ,
+ [".gif", "art/GIFT/multiAnimSheet/"] ,
+ [".png", "art/PNGI/multiAnimSheet/"] ,
+ [".png", "art/PNGT/multiAnimSheet/"] ]
+
+OneSheetArr=[
+ [".bmp","art/BMP16/singleAnimSheet/"] ,
+ [".bmp","art/BMP24/singleAnimSheet/"] ,
+ [".gif", "art/GIF/singleAnimSheet/" ] ,
+ [".gif", "art/GIFT/singleAnimSheet/"] ,
+ [".png", "art/PNGI/singleAnimSheet/"] ,
+ [".png", "art/PNGT/singleAnimSheet/"] ]
+
+IndivFrameArr=[
+ [".bmp","art/BMP16/"] ,
+ [".bmp","art/BMP24/"] ,
+ [".gif", "art/GIF/" ] ,
+ [".gif", "art/GIFT/"] ,
+ [".png", "art/PNGI/"] ,
+ [".png", "art/PNGT/"] ]
+
+screen = pygame.display.set_mode(SIZE) #Screen Set 600x400
+
+screen.fill((BACKGROUNDR, BACKGROUNDG, BACKGROUNDB))
+
+"""Reading Individual Frames
+"""
+
+def readIndivFrames(fileType, path):
+ switch1 = [
+ [pygame.image.load("%sa1/1%s"%(path,fileType))],
+ [pygame.image.load("%sa1/2%s"%(path,fileType))],
+ [pygame.image.load("%sa1/3%s"%(path,fileType))],
+ [pygame.image.load("%sa1/4%s"%(path,fileType))],
+ [pygame.image.load("%sa1/5%s"%(path,fileType))],
+ [pygame.image.load("%sa1/6%s"%(path,fileType))],
+ [pygame.image.load("%sa1/7%s"%(path,fileType))],
+ [pygame.image.load("%sa1/8%s"%(path,fileType))],
+ [pygame.image.load("%sa1/9%s"%(path,fileType))]
+ ]
+
+ switch2 = [
+ [pygame.image.load("%sa2/1%s"%(path,fileType))],
+ [pygame.image.load("%sa2/2%s"%(path,fileType))],
+ [pygame.image.load("%sa2/3%s"%(path,fileType))],
+ [pygame.image.load("%sa2/4%s"%(path,fileType))],
+ [pygame.image.load("%sa2/5%s"%(path,fileType))],
+ [pygame.image.load("%sa2/6%s"%(path,fileType))],
+ [pygame.image.load("%sa2/7%s"%(path,fileType))],
+ [pygame.image.load("%sa2/8%s"%(path,fileType))],
+ [pygame.image.load("%sa2/9%s"%(path,fileType))]
+ ]
+
+ instances= []
+
+ cnt = make
+
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(switch1,'',10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(switch2,'',10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextFrame()
+ instances[groups][1][0].nextFrame()
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > WIDTH - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > HEIGHT - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > WIDTH - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > HEIGHT - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image[0], (instances[groups][0][0].image[0].get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image[0], (instances[groups][1][0].image[0].get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((BACKGROUNDR,BACKGROUNDG,BACKGROUNDB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+
+def readPerLine(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%sButtons.%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ trials = 0
+ while trials < 5:
+
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextAnimFrame("anim1")
+ instances[groups][1][0].nextAnimFrame("anim2")
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > WIDTH - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > HEIGHT - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > WIDTH - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > HEIGHT - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+ screen.fill((BACKGROUNDR,BACKGROUNDG,BACKGROUNDB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+def readIndivSheet(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%s1%s"%(path,fileType)))
+ spriteSheet2 = Spritesheet(("%s2%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+ animatedSprites[0][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+ animatedSprites[1][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+ trials = 0
+
+ while trials < 5:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ changes = 0
+ start = time.time()
+ while changes < 500:
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextAnimFrame("anim1")
+ instances[groups][1][0].nextAnimFrame("anim2")
+
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > WIDTH - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > HEIGHT - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > WIDTH - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > HEIGHT - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ groups = groups - 1
+ pygame.display.flip()
+
+ screen.fill((BACKGROUNDR,BACKGROUNDG,BACKGROUNDB))
+ changes = changes + 1
+ trials = trials + 1
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+
+#-----------------------------------------------------------------
+iterator = 0
+print "\nTesting One Sheet Per Animation"
+print ""
+while iterator < len(AnimPerLineArr):
+
+ print ""
+ print OneSheetArr[iterator][1]
+ readIndivSheet(OneSheetArr[iterator][0],OneSheetArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print ""
+print "Testing One Animation Per Line"
+print ""
+while iterator < len(OneSheetArr):
+
+ print ""
+ print AnimPerLineArr[iterator][1]
+ readPerLine(AnimPerLineArr[iterator][0],AnimPerLineArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print ""
+print "Testing Individual Frames"
+print ""
+while iterator < len(IndivFrameArr):
+
+ print ""
+ print IndivFrameArr[iterator][1]
+ readIndivFrames(IndivFrameArr[iterator][0],IndivFrameArr[iterator][1])
+ iterator += 1
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimTestMod.py b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimTestMod.py
new file mode 100755
index 0000000..2626357
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimTestMod.py
@@ -0,0 +1,361 @@
+from AnimatedSprite import Spritesheet, AnimatedSprite
+import sys, pygame, time
+pygame.init()
+
+print "Full Test - Authors Dave Silverman and Scott Mengel"
+print "Set size to 600 x 400 px"
+print "Running..."
+
+#--------------------------------------------------------------
+#CONSTANTS AND VARIABLES
+
+make=input("How many instances of each animation would you like to load? ")
+img={}
+ft="" #filetype
+r=0 #frame refreshes
+i=1 #cycles images
+size = width, height = 600,400 #screen sizes
+t=0 #trial number
+
+#These are arrays of file types and paths to the corresponding folders so that later I can just iterate through this array and grab
+#the path my images are in and the file type of the images in that folder. We have one array for each type of sprite sheet that we are testing.
+AnimPerLineArr=[ ["bmp","AnimationPerLine/bmp16/"] , ["bmp","AnimationPerLine/bmp24/"] , ["gif","AnimationPerLine/gif/"] , ["gif","AnimationPerLine/gift/"] , ["png","AnimationPerLine/png/"] , ["png","AnimationPerLine/pngt/"] ]
+OneSheetArr=[ ["bmp","OneSheetPerAnimation/bmp16/"] , ["bmp","OneSheetPerAnimation/bmp24/"] , ["gif","OneSheetPerAnimation/gif/"] , ["gif","OneSheetPerAnimation/gift/"] , ["png","OneSheetPerAnimation/png/"] , ["png","OneSheetPerAnimation/pngt/"] ]
+IndivFrameArr=[ ["bmp","IndividualFrames/bmp16/"] , ["bmp","IndividualFrames/bmp24/"] , ["gif","IndividualFrames/gif/"] , ["gif","IndividualFrames/gift/"] , ["png","IndividualFrames/png/"] , ["png","IndividualFrames/pngt/"] ]
+
+screen = pygame.display.set_mode(size) #Screen Set 600x400
+backgroundR = 152
+backgroundG = 0
+backgroundB = 152
+screen.fill((backgroundR, backgroundG, backgroundB))#setting the background color to purple.
+#-----------------------------------------------------------------
+#Reading Individual Frames
+
+def readIndivFrames(fileType, path):
+# This definition is used to read in the images that each only have one frame of animation on them and to display their animations
+
+ #This list holds the frames for the first animation
+ images1 = [
+ [pygame.image.load("%sa1/1.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/2.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/3.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/4.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/5.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/6.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/7.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/8.%s"%(path,fileType))],
+ [pygame.image.load("%sa1/9.%s"%(path,fileType))]
+ ]
+
+ #This list holds the frames for the second animation.
+ images2 = [
+ [pygame.image.load("%sa2/1.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/2.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/3.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/4.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/5.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/6.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/7.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/8.%s"%(path,fileType))],
+ [pygame.image.load("%sa2/9.%s"%(path,fileType))]
+ ]
+
+ #instances is an array of all the instances of each of the two animations.
+ instances = []
+
+ #cnt represents how many times both animations need to be made
+ cnt = make
+ while cnt > 0:
+ #animatedSprites is a list that hads two valuse in it. One for the first animation and one for the second animation.
+ animatedSprites = []
+ #Each position in animatedSprites contains a list that has an actual animatedSprite object, and a list that contains all of that animatedSprite
+ #object's position and speed values
+ animatedSprites.append([AnimatedSprite(images1,'',10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(images2,'',10),[(40*cnt),40,2,2]])
+
+ #Adds the animatedSprites list to the instances list.
+ instances.append(animatedSprites)
+
+ #Increments the cnt object
+ cnt = cnt - 1
+
+ #trials represents the number of trials that is perfor,ed for each test.
+ trials = 0
+ while trials < 5:
+
+ #This loop is used to go through to the deepest level of this list and modify the positions of each set of animations so that they
+ #are not all directly on top of each other.
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ #changes is a variable that is used to track how many frames have rendered.
+ changes = 0
+ #start represents the time the test starts
+ start = time.time()
+ #This is the loop that goes through until 500 frames have passed
+ while changes < 500:
+ #This loop goes through the first level of the instances list so that every group of animations is updated
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextFrame()
+ instances[groups][1][0].nextFrame()
+
+ #These two ifs are used to check if the first animation is off screen and adjust its velocity if it is so that it will come back
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ #These two ifs are used to check if the second animation is off screen and adjust its velocity if it is so that it will come back
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ #These two statements update the position of the first animation based on its velocity
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ #These two statements update the position of the second animation based on its velocity
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ #blits the new position of both animations
+ screen.blit(instances[groups][0][0].image[0], (instances[groups][0][0].image[0].get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image[0], (instances[groups][1][0].image[0].get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ #iterates group object to next one to update
+ groups = groups - 1
+ #flips the display so that the new frames show up
+ pygame.display.flip()
+ #fills the screen with the background coor
+ screen.fill((backgroundR,backgroundG,backgroundB))
+ #iterates the changes object
+ changes = changes + 1
+ #iterates the trials object
+ trials = trials + 1
+ #prints what trial we are on and the frame rate.
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+
+def readPerLine(fileType, path):
+
+ spriteSheet1 = Spritesheet(("%sButtons.%s"%(path,fileType)))
+
+ instances= []
+
+ cnt = make
+ while cnt > 0:
+ animatedSprites = []
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ #trials represents the number of trials that is perfor,ed for each test.
+ trials = 0
+ while trials < 5:
+
+ #This loop is used to go through to the deepest level of this list and modify the positions of each set of animations so that they
+ #are not all directly on top of each other.
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ #changes is a variable that is used to track how many frames have rendered.
+ changes = 0
+ #start represents the time the test starts
+ start = time.time()
+ #This is the loop that goes through until 500 frames have passed
+ while changes < 500:
+ #This loop goes through the first level of the instances list so that every group of animations is updated
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextFrame()
+ instances[groups][1][0].nextFrame()
+
+ #These two ifs are used to check if the first animation is off screen and adjust its velocity if it is so that it will come back
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ #These two ifs are used to check if the second animation is off screen and adjust its velocity if it is so that it will come back
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ #These two statements update the position of the first animation based on its velocity
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ #These two statements update the position of the second animation based on its velocity
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ #blits the new position of both animations
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ #iterates group object to next one to update
+ groups = groups - 1
+ #flips the display so that the new frames show up
+ pygame.display.flip()
+ #fills the screen with the background coor
+ screen.fill((backgroundR,backgroundG,backgroundB))
+ #iterates the changes object
+ changes = changes + 1
+ #iterates the trials object
+ trials = trials + 1
+ #prints what trial we are on and the frame rate.
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+#-----------------------------------------------------------------
+def readIndivSheet(fileType, path):
+
+ #creates instances of the spritesheet object witht he given sprite sheet images
+ spriteSheet1 = Spritesheet(("%s1.%s"%(path,fileType)))
+ spriteSheet2 = Spritesheet(("%s2.%s"%(path,fileType)))
+
+ instances= []
+
+ #Increments the cnt object
+ cnt = make
+ while cnt > 0:
+ #animatedSprites is a list that hads two valuse in it. One for the first animation and one for the second animation.
+ animatedSprites = []
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]])
+ animatedSprites[0][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]])
+ animatedSprites[1][0].addImages(spriteSheet2.img_extract(9,1,40,40))
+
+ instances.append(animatedSprites)
+
+ cnt = cnt - 1
+
+ #trials represents the number of trials that is perfor,ed for each test.
+ trials = 0
+ while trials < 5:
+
+ #This loop is used to go through to the deepest level of this list and modify the positions of each set of animations so that they
+ #are not all directly on top of each other.
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][1][0] = 40 * groups
+ instances[groups][0][1][1] = 0
+ instances[groups][1][1][0] = 40 * groups
+ instances[groups][1][1][1] = 40
+ groups = groups - 1
+
+ #changes is a variable that is used to track how many frames have rendered.
+ changes = 0
+ #start represents the time the test starts
+ start = time.time()
+ #This is the loop that goes through until 500 frames have passed
+ while changes < 500:
+ #This loop goes through the first level of the instances list so that every group of animations is updated
+ groups = len(instances) - 1
+ while groups >= 0:
+ instances[groups][0][0].nextFrame()
+ instances[groups][1][0].nextFrame()
+
+ #These two ifs are used to check if the first animation is off screen and adjust its velocity if it is so that it will come back
+ if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40:
+ instances[groups][0][1][2] = instances[groups][0][1][2] * -1
+
+ if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40:
+ instances[groups][0][1][3] = instances[groups][0][1][3] * -1
+
+ #These two ifs are used to check if the second animation is off screen and adjust its velocity if it is so that it will come back
+ if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40:
+ instances[groups][1][1][2] = instances[groups][1][1][2] * -1
+
+ if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40:
+ instances[groups][1][1][3] = instances[groups][1][1][3] * -1
+
+
+ #These two statements update the position of the first animation based on its velocity
+ instances[groups][0][1][0] += instances[groups][0][1][2]
+ instances[groups][0][1][1] += instances[groups][0][1][3]
+
+ #These two statements update the position of the second animation based on its velocity
+ instances[groups][1][1][0] += instances[groups][1][1][2]
+ instances[groups][1][1][1] += instances[groups][1][1][3]
+
+ #blits the new position of both animations
+ screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1])))
+ screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1])))
+
+ #iterates group object to next one to update
+ groups = groups - 1
+ #flips the display so that the new frames show up
+ pygame.display.flip()
+ #fills the screen with the background coor
+ screen.fill((backgroundR,backgroundG,backgroundB))
+ #iterates the changes object
+ changes = changes + 1
+ #iterates the trials object
+ trials = trials + 1
+ #prints what trial we are on and the frame rate.
+ print(trials)
+ print(1/((time.time() -start)/500))
+
+
+#-----------------------------------------------------------------
+iterator = 0
+print""
+print "Testing One Sheet Per Animation"
+print ""
+while iterator < len(AnimPerLineArr):
+
+ print""
+ print OneSheetArr[iterator][1]
+ readIndivSheet(OneSheetArr[iterator][0],OneSheetArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print""
+print "Testing One Animation Per Line"
+print ""
+while iterator < len(OneSheetArr):
+
+ print ""
+ print AnimPerLineArr[iterator][1]
+ readPerLine(AnimPerLineArr[iterator][0],AnimPerLineArr[iterator][1])
+ iterator += 1
+
+iterator = 0
+print ""
+print "Testing Individual Frames"
+print ""
+while iterator < len(IndivFrameArr):
+
+ print ""
+ print IndivFrameArr[iterator][1]
+ readIndivFrames(IndivFrameArr[iterator][0],IndivFrameArr[iterator][1])
+ iterator += 1
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimatedSprite.py b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimatedSprite.py
new file mode 100755
index 0000000..e4a3e3b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimatedSprite.py
@@ -0,0 +1,169 @@
+import pygame
+
+class Spritesheet:
+ """
+ Class from http://www.scriptedfun.com/transcript-2-using-sprite-sheets-and-drawing-the-background/
+
+ This class is used to seperate sprite sheets into the individual frames contained on them and put them into an array of images.
+ """
+
+ def __init__(self, filename):
+ #This is the constructor. You pass in a file that contains your frames and it sets it to the sheet property.
+
+ self.sheet = pygame.image.load(filename)#.convert()
+
+ def imgat(self, rect):
+ #This definition is called by imgsat and takes an individual frame and creates a seperate image out of it
+
+ rect = pygame.Rect(rect)
+ image = pygame.Surface(rect.size)#.convert()
+ image.blit(self.sheet, (0, 0), rect)
+ return image
+
+ def imgsat(self, rects):
+ #This definition is called by img_extract. It takes the array of frames and passes them into imgat so they can be turned into usable images.
+ #It then takes the returned images and adds them to the final array of frames.
+
+ imgs = []
+ for rect in rects:
+ imgs.append(self.imgat(rect))
+ return imgs
+
+ def img_extract( self, cols, rows, width, height ):
+ #This definition begins the chain rection of calling all of the other definitions by sending the list of rectangles that are the images
+ #into imgsat.
+
+ rect_list = []
+ for y in range(0, rows):
+ for x in range(0, cols):
+ rect_list.append( (width*x, height*y, width, height) )
+ return self.imgsat( rect_list)
+
+
+class AnimatedSprite(pygame.sprite.Sprite):
+ """
+ http://shinylittlething.com/2009/07/21/pygame-and-animated-sprites/
+
+ This class is meant to hold the array of images/frames for animation so they can be used to animate.
+ """
+
+ def __init__(self,images,textfileName,fps = 10):
+ #This is the consrtuctor for the class. It takes in the array of imnages/frames, a text file that explains what frames belong
+ #to each animation, and a frame rateat which the animations should run.
+
+ pygame.sprite.Sprite.__init__(self)
+ self._images = images
+
+ # Track the time we started, and the time between updates.
+ # Then we can figure out when we have to switch the image.
+ self._start = pygame.time.get_ticks()
+ self._delay = 1000 / fps
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+
+ #This tests to see if the text file is being used. In a situation where something only has one animation you have
+ #no need for the text file and can pass in an empty string to signify this.
+ if textfileName != '':
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ #This while loop goes through and as long as you have not reached an empty line it continues to read the formatted lines
+ while currentLine != '':
+ #The lines of text are formatted to contain the name, start frame, and end frame, of each animation
+ animValues = currentLine.split(",")
+ #animations is a dictionary that uses the name of each animation as the reference and then has a two item list at each
+ #position containing the start and end frame of the corresponding animation
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()#Moving on to the next line.
+
+ def addImages(self, images):
+ #This definition simply allows you to add more images to your array of images.
+
+ self._images.extend(images)
+
+ def update(self, t):
+ # This method updates the animation in a situation where there is only one animation contained within the object.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame and continues to check over and over until it is not
+ while self._frame >= len(self._images):
+ #since we are past the final frame it is now figuring out how many frames past the final frame we have actually gone
+ framesPast = self._frame - len(self._images)
+ #sets the current frame to the frame it should be at
+ self._frame = framesPast - 1
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def updateAnimation(self, t, animName):
+ # This method updates the animation based on the start and end frame of the specific animation you are on.
+ #This means that if your object contains multiple animations, you can use this method to reference the exact
+ #animation that you are using.
+
+ #calculates the amount of time that has passed since the last update
+ timePassed = t - self._last_update
+ #checks if enough time has passed that it would need to update the frame of the animation
+ if timePassed > self._delay:
+ #Checks to make sure that the current frame is actually set to a position within the animation
+ if self._frame < self.animations.get(animName)[0] or self._frame > self.animations.get(animName)[1]:
+ #corrects the position of the current frame
+ self._frame = self.animations.get(animName)[0]
+ #since enough time has passed, it will determine how many times the frame was supposed to change since the last update
+ frameChanges = int(timePassed/self._delay)
+ #goes to the frame that it should be at right now and skips any frames that would have already been over and done with
+ self._frame += frameChanges
+ #checks if the current frame is past the final frame of the current animation and continues to check over and over
+ #until it is not
+ while self._frame >= self.animations.get(animName)[1]:
+ #Determines how many frames past the final frame of the animation it is
+ framesPast = self._frame - self.animations.get(animName)[1]
+ #Sets the current frame to the frame it should be at
+ self._frame = framesPast - 1 + self.animations.get(animName)[0]
+ #sets the current image to the image associated with the current frame
+ self.image = self._images[self._frame]
+ #sets the last update value to the current time so that at the next update the time change is accurate
+ self._last_update = t
+
+ def nextFrame(self):
+ # This definition is designed to simply move to the next frame.
+ # All of the other definitions only move to the next frame if
+ # enough time has passed based on the framerate. With this
+ # definition I can go right to the next frame allowing me to
+ # see how fast a framerate I can get to and not be limited by
+ # what I define.
+
+ #Iterates to the next frame in the animation
+ self._frame += 1
+ #Checks to make sure it has not gone past the final frame of the animation
+ if self._frame >= len(self._images):
+ #Since it has gone pastr the final frame it figures out how far past it has gone and corrects it.
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+ #Finally sets the image to the current frame
+ self.image = self._images[self._frame]
+
+ def nextAnimFrame(self, animName):
+ # This definition is designed to simply move to the next frame of the specified animation.
+
+ #Checks to make sure that it is actually in the range of the animation's frames
+ if self._frame < self.animations[animName][0] or self.frame > self.animations[animName][1]:
+ self._frame = self.animations[animName][0]
+
+ #Iterates to the next frame in the animation
+ self._frame += 1
+ #Checks to make sure it has not gone past the final frame of the animation
+ if self._frame > self.animations[animName][1]:
+ #Since it has gone pastr the final frame it figures out how far past it has gone and corrects it.
+ framesPast = self._frame - self.animations[animName][1]
+ self._frame = framesPast - 1 + self.animations[animName][0]
+ #Finally sets the image to the current frame
+ self.image = self._images[self._frame]
+
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/Buttons.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/Buttons.bmp
new file mode 100755
index 0000000..7edcb3c
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/Buttons.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp16/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/Buttons.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/Buttons.bmp
new file mode 100755
index 0000000..a96ed6b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/Buttons.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/bmp24/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/Buttons.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/Buttons.gif
new file mode 100755
index 0000000..8725ade
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/Buttons.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gif/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/Buttons.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/Buttons.gif
new file mode 100755
index 0000000..4be81f6
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/Buttons.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/gift/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/Buttons.png b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/Buttons.png
new file mode 100755
index 0000000..83bff0c
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/Buttons.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/png/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/Buttons.png b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/Buttons.png
new file mode 100755
index 0000000..cb6766f
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/Buttons.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/AnimationPerLine/pngt/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/Buttons.psd b/devtools/CompleteTestKit/.to-do/Animation Styles/Buttons.psd
new file mode 100755
index 0000000..a1571e2
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/Buttons.psd
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/1.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/1.bmp
new file mode 100755
index 0000000..57630e3
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/1.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/2.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/2.bmp
new file mode 100755
index 0000000..90af77a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/2.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/3.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/3.bmp
new file mode 100755
index 0000000..1751a4a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/3.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/4.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/4.bmp
new file mode 100755
index 0000000..1f292d1
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/4.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/5.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/5.bmp
new file mode 100755
index 0000000..fd8cc0e
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/5.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/6.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/6.bmp
new file mode 100755
index 0000000..df3a2eb
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/6.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/7.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/7.bmp
new file mode 100755
index 0000000..51b0052
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/7.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/8.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/8.bmp
new file mode 100755
index 0000000..9302c64
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/8.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/9.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/9.bmp
new file mode 100755
index 0000000..f5c6191
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a1/9.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/1.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/1.bmp
new file mode 100755
index 0000000..4def064
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/1.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/2.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/2.bmp
new file mode 100755
index 0000000..3750af4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/2.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/3.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/3.bmp
new file mode 100755
index 0000000..636c6f3
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/3.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/4.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/4.bmp
new file mode 100755
index 0000000..646b407
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/4.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/5.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/5.bmp
new file mode 100755
index 0000000..11a9bf5
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/5.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/6.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/6.bmp
new file mode 100755
index 0000000..ca1ba7b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/6.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/7.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/7.bmp
new file mode 100755
index 0000000..9375c15
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/7.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/8.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/8.bmp
new file mode 100755
index 0000000..53b66f9
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/8.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/9.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/9.bmp
new file mode 100755
index 0000000..088558c
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp16/a2/9.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/1.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/1.bmp
new file mode 100755
index 0000000..e910cec
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/1.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/2.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/2.bmp
new file mode 100755
index 0000000..0545f38
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/2.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/3.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/3.bmp
new file mode 100755
index 0000000..a154b29
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/3.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/4.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/4.bmp
new file mode 100755
index 0000000..4ab21f9
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/4.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/5.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/5.bmp
new file mode 100755
index 0000000..0a55d39
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/5.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/6.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/6.bmp
new file mode 100755
index 0000000..ad3f1b1
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/6.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/7.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/7.bmp
new file mode 100755
index 0000000..915ab5b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/7.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/8.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/8.bmp
new file mode 100755
index 0000000..b36287d
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/8.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/9.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/9.bmp
new file mode 100755
index 0000000..2cab5a4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a1/9.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/1.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/1.bmp
new file mode 100755
index 0000000..1b41dff
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/1.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/2.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/2.bmp
new file mode 100755
index 0000000..71cca69
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/2.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/3.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/3.bmp
new file mode 100755
index 0000000..a374206
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/3.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/4.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/4.bmp
new file mode 100755
index 0000000..37c4304
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/4.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/5.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/5.bmp
new file mode 100755
index 0000000..51f1acb
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/5.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/6.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/6.bmp
new file mode 100755
index 0000000..483043c
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/6.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/7.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/7.bmp
new file mode 100755
index 0000000..d99e779
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/7.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/8.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/8.bmp
new file mode 100755
index 0000000..223b87e
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/8.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/9.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/9.bmp
new file mode 100755
index 0000000..088a0f5
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/bmp24/a2/9.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/1.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/1.gif
new file mode 100755
index 0000000..4a89216
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/1.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/2.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/2.gif
new file mode 100755
index 0000000..b5019d8
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/2.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/3.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/3.gif
new file mode 100755
index 0000000..a87ddc6
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/3.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/4.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/4.gif
new file mode 100755
index 0000000..2a398e6
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/4.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/5.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/5.gif
new file mode 100755
index 0000000..93e5b8d
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/5.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/6.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/6.gif
new file mode 100755
index 0000000..0e73825
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/6.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/7.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/7.gif
new file mode 100755
index 0000000..061669a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/7.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/8.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/8.gif
new file mode 100755
index 0000000..90dcfda
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/8.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/9.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/9.gif
new file mode 100755
index 0000000..aa194d9
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a1/9.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/1.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/1.gif
new file mode 100755
index 0000000..09134f4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/1.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/2.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/2.gif
new file mode 100755
index 0000000..d9ebbc2
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/2.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/3.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/3.gif
new file mode 100755
index 0000000..de17bd4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/3.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/4.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/4.gif
new file mode 100755
index 0000000..87450de
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/4.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/5.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/5.gif
new file mode 100755
index 0000000..f95b8d9
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/5.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/6.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/6.gif
new file mode 100755
index 0000000..3462272
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/6.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/7.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/7.gif
new file mode 100755
index 0000000..ac5f084
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/7.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/8.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/8.gif
new file mode 100755
index 0000000..d9d3989
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/8.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/9.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/9.gif
new file mode 100755
index 0000000..bcdd274
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gif/a2/9.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/1.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/1.gif
new file mode 100755
index 0000000..2aad244
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/1.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/2.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/2.gif
new file mode 100755
index 0000000..ed22525
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/2.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/3.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/3.gif
new file mode 100755
index 0000000..246cd12
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/3.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/4.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/4.gif
new file mode 100755
index 0000000..722f240
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/4.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/5.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/5.gif
new file mode 100755
index 0000000..6a71348
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/5.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/6.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/6.gif
new file mode 100755
index 0000000..0dd2145
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/6.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/7.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/7.gif
new file mode 100755
index 0000000..1e9914b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/7.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/8.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/8.gif
new file mode 100755
index 0000000..390124b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/8.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/9.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/9.gif
new file mode 100755
index 0000000..61c8c3c
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a1/9.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/1.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/1.gif
new file mode 100755
index 0000000..a79f1e0
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/1.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/2.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/2.gif
new file mode 100755
index 0000000..b2579e3
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/2.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/3.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/3.gif
new file mode 100755
index 0000000..42f2c74
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/3.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/4.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/4.gif
new file mode 100755
index 0000000..61b944a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/4.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/5.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/5.gif
new file mode 100755
index 0000000..865f4c7
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/5.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/6.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/6.gif
new file mode 100755
index 0000000..9fa7cf2
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/6.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/7.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/7.gif
new file mode 100755
index 0000000..d7627b2
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/7.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/8.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/8.gif
new file mode 100755
index 0000000..965acc1
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/8.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/9.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/9.gif
new file mode 100755
index 0000000..0509dad
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/gift/a2/9.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/1.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/1.png
new file mode 100755
index 0000000..663ca83
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/1.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/2.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/2.png
new file mode 100755
index 0000000..6f44ab5
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/2.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/3.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/3.png
new file mode 100755
index 0000000..c49ab7e
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/3.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/4.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/4.png
new file mode 100755
index 0000000..63eb7e2
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/4.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/5.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/5.png
new file mode 100755
index 0000000..2aaa600
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/5.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/6.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/6.png
new file mode 100755
index 0000000..8fa9737
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/6.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/7.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/7.png
new file mode 100755
index 0000000..1de0311
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/7.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/8.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/8.png
new file mode 100755
index 0000000..7d6332a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/8.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/9.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/9.png
new file mode 100755
index 0000000..5a8b0ea
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a1/9.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/1.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/1.png
new file mode 100755
index 0000000..98b3d72
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/1.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/2.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/2.png
new file mode 100755
index 0000000..6ec3dac
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/2.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/3.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/3.png
new file mode 100755
index 0000000..157dfc8
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/3.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/4.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/4.png
new file mode 100755
index 0000000..5719ab6
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/4.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/5.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/5.png
new file mode 100755
index 0000000..3cfd8a3
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/5.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/6.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/6.png
new file mode 100755
index 0000000..750ed8b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/6.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/7.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/7.png
new file mode 100755
index 0000000..ce7756e
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/7.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/8.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/8.png
new file mode 100755
index 0000000..e28a906
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/8.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/9.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/9.png
new file mode 100755
index 0000000..b6b2cd8
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/png/a2/9.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/1.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/1.png
new file mode 100755
index 0000000..dab1239
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/1.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/2.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/2.png
new file mode 100755
index 0000000..56312a7
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/2.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/3.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/3.png
new file mode 100755
index 0000000..4ceb540
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/3.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/4.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/4.png
new file mode 100755
index 0000000..38d640a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/4.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/5.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/5.png
new file mode 100755
index 0000000..dcc14d4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/5.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/6.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/6.png
new file mode 100755
index 0000000..cb2f933
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/6.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/7.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/7.png
new file mode 100755
index 0000000..497ed6f
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/7.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/8.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/8.png
new file mode 100755
index 0000000..693ac1e
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/8.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/9.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/9.png
new file mode 100755
index 0000000..e83b570
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a1/9.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/1.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/1.png
new file mode 100755
index 0000000..06f2b7c
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/1.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/2.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/2.png
new file mode 100755
index 0000000..f20ed10
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/2.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/3.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/3.png
new file mode 100755
index 0000000..6681f2e
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/3.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/4.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/4.png
new file mode 100755
index 0000000..ff3f0f1
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/4.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/5.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/5.png
new file mode 100755
index 0000000..1152066
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/5.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/6.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/6.png
new file mode 100755
index 0000000..458e680
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/6.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/7.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/7.png
new file mode 100755
index 0000000..4097b74
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/7.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/8.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/8.png
new file mode 100755
index 0000000..e6ee9b2
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/8.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/9.png b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/9.png
new file mode 100755
index 0000000..314aabf
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/IndividualFrames/pngt/a2/9.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/1.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/1.bmp
new file mode 100755
index 0000000..9798a08
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/1.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/2.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/2.bmp
new file mode 100755
index 0000000..68ba0ba
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/2.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp16/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/1.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/1.bmp
new file mode 100755
index 0000000..7ff69f4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/1.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/2.bmp b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/2.bmp
new file mode 100755
index 0000000..a771b04
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/2.bmp
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/bmp24/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/1.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/1.gif
new file mode 100755
index 0000000..223321b
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/1.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/2.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/2.gif
new file mode 100755
index 0000000..56c1a0f
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/2.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gif/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/1.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/1.gif
new file mode 100755
index 0000000..895ff39
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/1.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/2.gif b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/2.gif
new file mode 100755
index 0000000..61d6302
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/2.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/gift/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/1.png b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/1.png
new file mode 100755
index 0000000..99f9800
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/1.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/2.png b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/2.png
new file mode 100755
index 0000000..41b01d4
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/2.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/png/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/1.png b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/1.png
new file mode 100755
index 0000000..37d045a
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/1.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/2.png b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/2.png
new file mode 100755
index 0000000..b7a00a1
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/2.png
Binary files differ
diff --git a/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/text.txt b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/text.txt
new file mode 100755
index 0000000..dc66dbe
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Animation Styles/OneSheetPerAnimation/pngt/text.txt
@@ -0,0 +1,2 @@
+anim1,0,8
+anim2,9,17 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/.to-do/Scene.py b/devtools/CompleteTestKit/.to-do/Scene.py
new file mode 100644
index 0000000..6101696
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/Scene.py
@@ -0,0 +1,6 @@
+#! /usr/bin/env python
+
+class Scene(pygame.sprite.Sprite):
+ def __init__(self):
+
+
diff --git a/devtools/CompleteTestKit/.to-do/dirtyTest.py b/devtools/CompleteTestKit/.to-do/dirtyTest.py
new file mode 100755
index 0000000..94c24a7
--- /dev/null
+++ b/devtools/CompleteTestKit/.to-do/dirtyTest.py
@@ -0,0 +1,122 @@
+#! /usr/bin/env python
+import pygame
+from pygame.locals import *
+from boxes import BouncingBox
+from time import time
+pygame.init()
+
+FRAME=3000
+screenWidth = 600
+screenHeight = 400
+numImages = 5
+maxTrial = 1 # multiple trials, but hard coded in this test
+dirtyList=[]
+"""
+try:
+ f=preferences[0][9]
+except:
+ f=preferences[0][9]=open('./logs/Test Results - %s.csv'
+ %str(datetime.now()),'a')
+f.write("\n\nSpeed Test - "+str(datetime.now()))
+f.write(",Width (pixels)"+','+"Height (pixels)"+','+
+ "Trial Runs"+','+"Image Objects Drawn")
+f.write("\n,"+str(screenWidth)+','+str(screenHeight)+','+
+ str(maxTrial)+','+str(numImages))
+f.write("\nFile Type"+','+"Time taken to load images to memory"+
+ ','+"Trials (frames per second)")
+"""
+print "width,height",
+print screenWidth,
+print ",",
+print screenHeight
+
+screen = pygame.display.set_mode( [int(screenWidth),
+ int(screenHeight)] ) #Screen Set 600x400
+pygame.display.set_caption("Sprite Speed Test Window")
+GREEN = 0, 192, 0 # green
+background = pygame.Surface( (screenWidth,screenHeight) )
+background.fill(GREEN)
+screen.blit(background,[0,0])
+pygame.display.flip()
+start = time()
+frameList = [
+ pygame.image.load("./art/BMP24/1.bmp").convert(),
+ pygame.image.load("./art/BMP24/2.bmp").convert(),
+ pygame.image.load("./art/BMP24/3.bmp").convert(),
+ pygame.image.load("./art/BMP24/4.bmp").convert(),
+ pygame.image.load("./art/BMP24/5.bmp").convert(),
+ pygame.image.load("./art/BMP24/6.bmp").convert(),
+ pygame.image.load("./art/BMP24/7.bmp").convert(),
+ pygame.image.load("./art/BMP24/8.bmp").convert(),
+ pygame.image.load("./art/BMP24/9.bmp").convert(),
+]
+
+#make our groups
+group1=pygame.sprite.RenderUpdates( BouncingBox(frameList,(0,0)) )
+group2=pygame.sprite.RenderUpdates(BouncingBox(frameList,(40,40)) )
+group3=pygame.sprite.RenderUpdates(BouncingBox(frameList,(80,80)) )
+group4=pygame.sprite.RenderUpdates(BouncingBox(frameList,(120,120)) )
+group5=pygame.sprite.RenderUpdates(BouncingBox(frameList,(160,160)) )
+
+print (time()-start) ,
+print " -- Time to load"
+
+groups=[group1,group2,group3,group4,group5]
+
+"""while 1:
+ try:ft=ftArr[t]
+ except:
+ print "\nTest Complete\n"
+ break
+ f.seek(0,2)
+ f.write(str('\n'+ft[1]+' Speed Test'))
+ f.seek(0,2)
+ start=time.time()
+
+ f.write(',')
+ f.write(str(time.time()-start))
+"""
+print time()-start
+
+for aTrial in range(maxTrial):
+ for frame in range(FRAME):
+ dirtyList=[]
+ for image in range(numImages):
+ #move / collision detection
+ groups[image].update( screenWidth,screenHeight )
+
+ #individually blit each image group - add to list for update
+ dirtyList.extend(groups[image].draw(screen))
+
+ #draw the images flip/update
+ pygame.display.update(dirtyList)
+ for image in range(numImages):
+ groups[image].clear(screen, background)
+
+
+ print 1/((time()-start)/FRAME)
+"""f.seek(0,2)
+ f.write(','+str(1/((time.time()-start)/r)))
+
+
+screen = pygame.display.set_mode([1200, 900])
+boxesTwo.add(UpDownBox([pygame.image.load("goblin.png")], (0,300)))
+background = pygame.image.load("Room.gif")
+#background.fill(pygame.image.load("Room.gif"))
+screen.blit(background, [0, 0])
+pygame.display.flip()
+
+boxesTwo.update(pygame.time.get_ticks(), 700)
+rectlist = boxesTwo.draw(screen)
+pygame.display.update(rectlist)
+start = time()
+for i in range(2000):
+ boxes.update(pygame.time.get_ticks(), 700)
+ boxesTwo.update(pygame.time.get_ticks(), 700)
+ rectlist = boxesTwo.draw(screen)
+ rectlist.extend(boxes.draw(screen))
+ pygame.display.update(rectlist)
+ boxesTwo.clear(screen, background)
+ boxes.clear(screen, background)
+
+print 2000/(time() - start) """
diff --git a/devtools/CompleteTestKit/DrawableObjectTest.py b/devtools/CompleteTestKit/DrawableObjectTest.py
new file mode 100644
index 0000000..3b85423
--- /dev/null
+++ b/devtools/CompleteTestKit/DrawableObjectTest.py
@@ -0,0 +1,66 @@
+#2345678911234567892123456789312345678941234567895123456789612345678971234567898
+#! /usr/bin/env python
+import pygame
+from pygame.locals import *
+import time
+from Scene import Scene
+from DrawableObject import DrawableObject
+from DynamicDrawableObject import DynamicDrawableObject
+
+pygame.init()
+
+screenWidth = 600 # screen width
+screenHeight= 400 # screen height
+
+maxFrame = 10000 # Number of frame refreshes per trial run
+maxImage = 5 # " Animated images to create
+maxScene = 1 # " Scenes to load simultaneously
+maxTrial = 5 # " Trials to loop through
+
+# 'Constants' that would otherwise be passed in declared ^^
+# Begin creating test variables
+
+screen = pygame.display.set_mode( (screenWidth,screenHeight) )
+background = pygame.image.load("./art/GIF/Room.gif").convert()
+clock=pygame.time.Clock()
+
+#2345678911234567892123456789312345678941234567895123456789612345678971234567898
+surfaceList = [
+ pygame.image.load("./art/GIF/1.gif").convert(),
+ pygame.image.load("./art/GIF/2.gif").convert(),
+ pygame.image.load("./art/GIF/3.gif").convert(),
+ pygame.image.load("./art/GIF/4.gif").convert(),
+ pygame.image.load("./art/GIF/5.gif").convert(),
+ pygame.image.load("./art/GIF/6.gif").convert(),
+ pygame.image.load("./art/GIF/7.gif").convert(),
+ pygame.image.load("./art/GIF/8.gif").convert(),
+ pygame.image.load("./art/GIF/9.gif").convert()]
+
+#2345678911234567892123456789312345678941234567895123456789612345678971234567898
+# Make the screen and the background image
+pygame.display.set_caption("Sprite Speed Test Window")
+screen.blit( background,(0,0) )
+pygame.display.flip()
+
+# Make the DDO's to use in the screen
+aDDO = DynamicDrawableObject( surfaceList,'', 1, 0, 0,2,2 )
+bDDO = DynamicDrawableObject( surfaceList,'', 8, 40, 40,2,2 )
+cDDO = DynamicDrawableObject( surfaceList,'',12, 80, 80,2,2 )
+dDDO = DynamicDrawableObject( surfaceList,'',24,120,120,2,2 )
+eDDO = DynamicDrawableObject( surfaceList,'',72,160,160,2,2 )
+
+myScene = Scene(aDDO) # creating my scenes
+myScene.addObjects( [ bDDO , cDDO , dDDO , eDDO ] )
+
+for trial in range(maxTrial):
+ clock.tick()
+ for frame in range(maxFrame):
+ dirtyList = []
+
+ myscene.moveObjects()
+ myScene.update( clock.get_time() )
+ pygame.display.update( myScene.draw(screen) )
+
+ clock.tick()
+
+#2345678911234567892123456789312345678941234567895123456789612345678971234567898
diff --git a/devtools/CompleteTestKit/animObj/DrawableFontObject.py b/devtools/CompleteTestKit/animObj/DrawableFontObject.py
new file mode 100644
index 0000000..92f641f
--- /dev/null
+++ b/devtools/CompleteTestKit/animObj/DrawableFontObject.py
@@ -0,0 +1,19 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class DrawableFontObject(DrawableObject, pygame.sprite.Sprite):
+
+ def __init__(self,text,font, x = 0, y = 0):
+
+ self.font = font
+ self.textImage = font.render(text, 1, (255,255,255))
+ self.text = text
+ DrawableObject.__init__(self, [self.textImage], '')
+
+ def changeText(self, newText, color=(0,0,0)):
+ self.text = newText
+ self._images[0] = self.font.render(str(newText), True, color)
+ self.image = self._images[0]
+
+ def getText(self):
+ return str(self.text)
diff --git a/devtools/CompleteTestKit/animObj/DrawableObject.py b/devtools/CompleteTestKit/animObj/DrawableObject.py
new file mode 100644
index 0000000..96bb8ef
--- /dev/null
+++ b/devtools/CompleteTestKit/animObj/DrawableObject.py
@@ -0,0 +1,157 @@
+import pygame
+
+class DrawableObject(pygame.sprite.Sprite):
+
+ def __init__(self, images, textfileName, transparent = False, x = 0, y = 0):
+ pygame.sprite.Sprite.__init__(self)
+
+ self._images = []
+ self._origImages = []
+ for i in range(len(images)):
+ self._images.append(images[i].convert_alpha())
+ self._origImages.append(images[i].convert_alpha())
+
+ blank = pygame.Surface((0,0))
+
+ if(transparent):
+ for i in range(len(images)):
+ self._images[i] = blank
+
+ self._start = pygame.time.get_ticks()
+ self.image = self._images[0]
+ self._last_update = 0
+ self._frame = 0
+ self.animations = {}
+ self._current_anim = ""
+ self.rect = self.image.get_rect()
+ self.xPos = x
+ self.yPos = y
+ self.myAngle = 0
+ self.xSize = self.image.get_width()
+ self.ySize = self.image.get_height()
+ self.rect.topleft = (x,y)
+
+ if textfileName != '':
+
+ f = open(textfileName, 'r')
+ currentLine = f.readline()
+ while currentLine != '':
+
+ animValues = currentLine.split(",")
+ self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
+ currentLine = f.readline()
+
+ else:
+
+ self.animations["anim1"] = [0, len(self._images)]
+ self.goToAnim("anim1")
+
+ self.makeTransparent(transparent)
+
+ def repopulateImages(self, newImages):
+
+ self._images = []
+ self._origImages = []
+ for i in range(len(newImages)):
+ self._images.append(newImages[i].convert_alpha())
+ self._origImages.append(newImages[i].convert_alpha())
+
+ self.image = self._images[0]
+ self._frame = 0
+ self.xSize = self.image.get_width()
+ self.ySize = self.image.get_height()
+
+ def addImages(self, images):
+ self._images.extend(images)
+ self._origImages.extend(images)
+
+ def goToAnim(self, animName):
+ if self.animations.get(animName, 0) != 0:
+ self._current_anim = animName
+ self._frame = self.animations[animName][0]
+ self.image = self._images[self._frame]
+
+ def goToFrame(self, frame):
+
+ if frame <= len(self._images):
+ self._frame = frame
+ self.image = self._images[self._frame]
+
+ def nudge(self, x, y):
+ self.xPos += x
+ self.yPos += y
+ self.rect.right += x
+ self.rect.top += y
+
+ def scale(self, x=None, y=None):
+ if type(x).__name__=='int': self.xSize = x
+ if type(y).__name__=='int': self.ySize = y
+
+ for i in range(len(self._images)):
+ self._origImages[i] = pygame.transform.scale(self._origImages[i], (self.xSize, self.ySize))
+ self._images[i] = self._origImages[i]
+
+ def fill(self, color):
+ for i in range(len(self._images)):
+ #print "filling with ", color
+ self._origImages[i].fill(color)
+ self._images[i].fill(color)
+
+ def getXSize(self):
+ return self.xSize
+
+ def getYSize(self):
+ return self.ySize
+
+ def rotate(self,angle):
+ self.myAngle += angle
+ for i in range(len(self._images)):
+ self._images[i] = pygame.transform.rotate(self._origImages[i], self.myAngle)
+
+ def getRotation(self):
+ return self.myAngle
+
+ def setPosition(self, x = None, y = None):
+ if type(x).__name__=='int': self.xPos = x
+ if type(y).__name__=='int': self.yPos = y
+ self.rect.topleft = (self.xPos, self.yPos)
+
+ def getXPos(self):
+ return self.xPos
+
+ def getYPos(self):
+ return self.yPos
+
+ def calcColorKey(self, x=0, y=0):
+ myColorKey = images[0].get_at((x,y))
+ setColorKey(myColorKey)
+
+ def makeTransparent(self, bool = True):
+ if bool == True:
+ surf = pygame.Surface((0,0))
+ for i in range(len(self._images)):
+ self._images[i] = surf
+ else:
+ for i in range(len(self._images)):
+ self._images[i] = self._origImages[i]
+ self.image = self._images[self._frame]
+
+ def setColorKey(self, aColor):
+ for i in range(len(self._images)):
+ self._images[i].set_colorkey(aColor)
+
+ def update(self, t=None):
+ timePassed = t + self._last_update
+
+ if (timePassed) > 200:
+
+ self.image = self._images[self._frame]
+ self._last_update = timePassed%1000
+ else:
+ self._last_update = timePassed
+
+ def nextFrame(self):
+ pass
+
+ def nextCurrentAnimFrame(self):
+ pass
diff --git a/devtools/CompleteTestKit/animObj/DynamicDrawableObject.py b/devtools/CompleteTestKit/animObj/DynamicDrawableObject.py
new file mode 100644
index 0000000..7dcb831d
--- /dev/null
+++ b/devtools/CompleteTestKit/animObj/DynamicDrawableObject.py
@@ -0,0 +1,74 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite):
+
+ def __init__(self,images,textfileName,fps = 10, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
+
+ self._delay = 1000/fps
+ DrawableObject.__init__(self, images, textfileName, x, y)
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+ def setSpeed(self, xVelocity = None, yVelocity = None):
+
+ if xVelocity != None: self.xSpeed = xVelocity
+ if yVelocity != None: self.ySpeed = yVelocity
+
+ def getXSpeed(self):
+
+ return self.xSpeed
+
+ def getYSpeed(self):
+
+ return self.ySpeed
+
+ def move(self):
+ self.xPos += self.xSpeed
+ self.yPos += self.ySpeed
+ self.rect.right += self.xSpeed
+ self.rect.top += self.ySpeed
+
+ def update(self, t):
+
+ timePassed = t + self._last_update
+
+ if (timePassed) > self._delay:
+ if self._frame < self.animations.get(self._current_anim)[0] or self._frame > self.animations.get(self._current_anim)[1]:
+ self._frame = self.animations.get(self._current_anim)[0] - 1
+
+ self._frame += timePassed/self._delay
+
+ if self._frame >= self.animations.get(self._current_anim)[1]:
+ self._frame = self._frame%(self.animations.get(self._current_anim)[1])
+
+ self.image = self._images[self._frame]
+ self._last_update = timePassed%self._delay
+ else:
+ self._last_update = timePassed
+
+ def nextFrame(self):
+ self._frame += 1
+ if self._frame >= len(self._images):
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+
+ self.image = self._images[self._frame]
+
+ def nextCurrentAnimFrame(self):
+
+ for cnt in range(len(animations)):
+
+ if animations[cnt] == self._current_anim:
+ if self._frame < self.animations[self._current_anim][0] or self._frame > self.animations[self._current_anim][1]:
+ self._frame = self.animations[self._current_anim][0]
+
+ else: self._frame += 1
+
+ if self._frame > self.animations[self._current_anim][1]:
+ framesPast = self._frame - self.animations[self._current_anim][1]
+ self._frame = framesPast - 1 + self.animations[self._current_anim][0]
+
+ self.image = self._images[self._frame]
diff --git a/devtools/CompleteTestKit/animObj/Scene.py b/devtools/CompleteTestKit/animObj/Scene.py
new file mode 100644
index 0000000..d2e50a9
--- /dev/null
+++ b/devtools/CompleteTestKit/animObj/Scene.py
@@ -0,0 +1,186 @@
+import pygame
+from pygame.sprite import RenderUpdates
+
+class Scene(pygame.sprite.RenderUpdates):
+
+ def __init__(self, sprites):
+
+ self._spritelist = [[sprites, sprites.getXPos(), sprites.getYPos()]]
+ #self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()])
+ RenderUpdates.__init__(self, sprites)
+
+ self.xPos = 0
+ self.yPos = 0
+ self.xSize = 0
+ self.ySize = 0
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def calcPosition(self):
+
+ lowestX = 9000
+ lowestY = 9000
+
+ for i in range(len(self._spritelist)):
+ if self._spritelist[i][0].getXPos() < lowestX: lowestX = self._spritelist[i][0].getXPos()
+ if self._spritelist[i][0].getYPos() < lowestY: lowestY = self._spritelist[i][0].getYPos()
+
+ self.xPos = lowestX
+ self.yPos = lowestY
+
+ def calcSize(self):
+
+ highestX = 0
+ highestY = 0
+
+ for i in range(len(self._spritelist)):
+ if (self._spritelist[i][0].getXPos() + self._spritelist[i][0].getXSize()) > highestX: highestX = self._spritelist[i][0].getXPos() + self._spritelist[i][0].getXSize()
+ if (self._spritelist[i][0].getYPos() + self._spritelist[i][0].getYSize()) > highestY: highestY = self._spritelist[i][0].getYPos() + self._spritelist[i][0].getYSize()
+
+ self.xSize = highestX - self.xPos
+ self.ySize = highestY - self.yPos
+
+ def addObject(self, newDrawableObject):
+ RenderUpdates.add_internal(self, newDrawableObject)
+ self._spritelist.insert(len(self._spritelist) - 1, [newDrawableObject, newDrawableObject.getXPos(), newDrawableObject.getYPos()])
+
+ def addObjects(self, newDrawableObjects):
+ for sprite in newDrawableObjects:
+ RenderUpdates.add_internal(self, sprite)
+ self._spritelist.insert(len(self._spritelist) - 1, [sprite, sprite.getXPos(), sprite.getYPos()])
+
+ def setRelativePositions(self):
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][1] = self._spritelist[i][0].getXPos() - self.xPos
+ self._spritelist[i][2] = self._spritelist[i][0].getYPos() - self.yPos
+
+ def removeObject(self, sprite):
+
+ for i in self._spritelist:
+ if i[0] == sprite:
+ self._spritelist.remove(i)
+ break
+ RenderUpdates.remove_internal(self, sprite)
+
+ def getObject(self, index):
+
+ if index < len(self._spritelist):
+ return self._spritelist[index][0]
+
+ def getListSize(self):
+
+ return len(self._spritelist)
+
+ def getList(self):
+
+ return list(self._spritelist)
+
+ def moveObjects(self):
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][0].move()
+
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
+
+ def moveScene(self, xNudge = 0, yNudge = 0):
+
+
+ for i in range(len(self._spritelist)):
+
+ self._spritelist[i][0].nudge(xNudge, yNudge)
+
+
+ self.calcPosition()
+
+ def setPosition(self, newXPos = None, newYPos = None):
+
+ if newXPos != None: self.xPos = newXPos
+ if newYPos != None: self.yPos = newYPos
+
+ for i in range(len(self._spritelist)):
+
+ self._spritelist[i][0].setPosition(self.xPos + self._spritelist[i][1], self.yPos + self._spritelist[i][2])
+
+ def getXPos(self):
+ return self.xPos
+
+ def getYPos(self):
+ return self.yPos
+
+ def getXSize(self):
+ return self.xSize
+
+ def getYSize(self):
+ return self.ySize
+
+ def scaleObjects(self, newXSize = None, newYSize = None):
+
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][0].scale(newXSize, newYSize)
+
+ def scaleScene(self, newXSize = None, newYSize = None):
+
+ self.calcPosition()
+ self.calcSize()
+
+ xScale = 1
+ yScale = 1
+
+ if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
+ if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
+
+ for i in range(len(self._spritelist)):
+ self._spritelist[i][0].scale(xScale * self._spritelist[iaw][0].getXSize(), yScale * self._spritelist[i][0].getYSize())
+ self._spritelist[i][1] = xScale * self._spritelist[i][1]
+ self._spritelist[i][2] = yScale * self._spritelist[i][2]
+
+ self.calcPosition()
+ self.calcSize()
+ self.setPosition()
+
+ def update(self, t):
+
+ for s in self._spritelist: s[0].update(t);
+
+ def draw(self, surface):
+ spritedict = self.spritedict
+ surface_blit = surface.blit
+ dirty = self.lostsprites
+ self.lostsprites = []
+ dirty_append = dirty.append
+ for s in self._spritelist:
+ r = spritedict[s[0]]
+ newrect = surface_blit(s[0].image, s[0].rect)
+ if r is 0:
+ dirty_append(newrect)
+ else:
+ if newrect.colliderect(r):
+ dirty_append(newrect.union(r))
+ else:
+ dirty_append(newrect)
+ dirty_append(r)
+ spritedict[s[0]] = newrect
+ return dirty
+
+ def drawEntireScene(self, surface):
+ spritedict = self.spritedict
+ surface_blit = surface.blit
+ dirty = self.lostsprites
+ self.lostsprites = []
+ dirty_append = dirty.append
+ for s in self._spritelist:
+ dirty_append(spritedict[s[0]])
+ dirty_append(surface_blit(s[0].image, s[0].rect))
+ return dirty
+
+ def nextFrame(self):
+
+ for i in range(len(self._spritelist)):
+
+ self._spritelist[i][0].nextFrame()
diff --git a/devtools/CompleteTestKit/animObj/__init__.py b/devtools/CompleteTestKit/animObj/__init__.py
new file mode 100644
index 0000000..00a713b
--- /dev/null
+++ b/devtools/CompleteTestKit/animObj/__init__.py
@@ -0,0 +1,16 @@
+# FortuneEngine is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# FortuneEngine is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with the FortuneEngine. If not, see <http://www.gnu.org/licenses/>.
+#
+# Engine Author: Justin Lewis <jlew.blackout@gmail.com>
+#
+# Test Author: Scott JT Mengel <jtmengel@gmail.com>
diff --git a/devtools/CompleteTestKit/art/GIF/Room.gif b/devtools/CompleteTestKit/art/GIF/Room.gif
new file mode 100644
index 0000000..798ebf1
--- /dev/null
+++ b/devtools/CompleteTestKit/art/GIF/Room.gif
Binary files differ
diff --git a/devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:18.522454.csv b/devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:18.522454.csv
new file mode 100644
index 0000000..b801465
--- /dev/null
+++ b/devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:18.522454.csv
@@ -0,0 +1,11 @@
+Speed Test - 2010-08-04 11:25:18.597314,Width (pixels),Height (pixels),Trial Runs,Image Objects Drawn
+,600,400,5,5
+File Type,Time taken to load images to memory (seconds),Trial 1 (frames per second),Trial 2 (frames per second),Trial 3 (frames per second),Trial 4 (frames per second),Trial 5 (frames per second)
+./art/BMP16/ Speed Test,0.000819206237793,525.594364794,516.793715928,496.984774694,586.237964054,528.422243528
+./art/BMP24/ Speed Test,0.00243401527405,515.792510508,534.0084218,954.347975468,1013.78737919,448.510953182
+./art/BMP32/ Speed Test,0.00272297859192,936.763028192,1021.21012176,1287.42485194,601.72453171,975.76037025
+./art/GIF/ Speed Test,0.00124001502991,743.861635448,577.345153598,893.578165379,841.398120171,1316.63498266
+./art/GIFT/ Speed Test,0.00151014328003,709.602215071,654.188185413,871.210591691,1376.8455911,630.567845776
+./art/JPG1/ Speed Test,0.0426681041718,517.664738503,514.796819734,538.680464655,535.498801279,544.754282193
+./art/JPG2/ Speed Test,0.0432670116425,504.074487051,557.794877755,490.880398181,553.90487842,685.650989381
+./art/JPG3/ Speed Test,0.00783705711365,387.460492333,497.238829238 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:58.338450.csv b/devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:58.338450.csv
new file mode 100644
index 0000000..69126dd
--- /dev/null
+++ b/devtools/CompleteTestKit/logs/Test Results - 2010-08-04 11:25:58.338450.csv
@@ -0,0 +1,28 @@
+Speed Test - 2010-08-04 11:25:58.338949,Width (pixels),Height (pixels),Trial Runs,Image Objects Drawn
+,600,400,1,1
+File Type,Time taken to load images to memory (seconds),Trial 1 (frames per second)
+./art/BMP16/ Speed Test,0.000369071960449,1259.21496009
+./art/BMP24/ Speed Test,0.000561952590942,1179.40039963
+./art/BMP32/ Speed Test,0.000652074813843,898.70368069
+./art/GIF/ Speed Test,0.000795125961304,1123.17383671
+./art/GIFT/ Speed Test,0.00184679031372,908.555748007
+./art/JPG1/ Speed Test,0.00170016288757,572.034582535
+./art/JPG2/ Speed Test,0.00154709815979,656.792011833
+./art/JPG3/ Speed Test,0.00372791290283,619.124573479
+./art/JPG4/ Speed Test,0.0396318435669,843.848959972
+./art/PNGI/ Speed Test,0.00243997573853,1096.77773635
+./art/PNGT/ Speed Test,0.00467014312744,799.515064639
+
+Using .convert()
+File Type,Time taken to load images to memory (seconds),Trial 1 (frames per second)
+./art/BMP16/ Speed convert() Test,0.000694990158081,1113.0157143
+./art/BMP24/ Speed convert() Test,0.00110793113708,639.263543739
+./art/BMP32/ Speed convert() Test,0.00073504447937,825.826613395
+./art/GIF/ Speed convert() Test,0.000856161117554,902.965188199
+./art/GIFT/ Speed convert() Test,0.000815868377686,1086.76322975
+./art/JPG1/ Speed convert() Test,0.00338506698608,1070.47306171
+./art/JPG2/ Speed convert() Test,0.00183987617493,871.391228797
+./art/JPG3/ Speed convert() Test,0.00433397293091,600.348216806
+./art/JPG4/ Speed convert() Test,0.00243592262268,950.111653813
+./art/PNGI/ Speed convert() Test,0.00196480751038,770.145634009
+./art/PNGT/ Speed convert() Test,0.00233697891235,719.110986753 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:06:40.515476.csv b/devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:06:40.515476.csv
new file mode 100644
index 0000000..faf33e5
--- /dev/null
+++ b/devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:06:40.515476.csv
@@ -0,0 +1,4 @@
+Speed Test - 2010-08-05 13:06:40.515955,Width (pixels),Height (pixels),Trial Runs,Image Objects Drawn
+,1200,700,5,5
+File Type,Time taken to load images to memory (seconds),Trial 1 (frames per second),Trial 2 (frames per second),Trial 3 (frames per second),Trial 4 (frames per second),Trial 5 (frames per second)
+./art/BMP16/ Speed Test,0.000890970230103 \ No newline at end of file
diff --git a/devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:09:49.989341.csv b/devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:09:49.989341.csv
new file mode 100644
index 0000000..21acbdc
--- /dev/null
+++ b/devtools/CompleteTestKit/logs/Test Results - 2010-08-05 13:09:49.989341.csv
@@ -0,0 +1,6 @@
+Speed Test - 2010-08-05 13:09:49.989796,Width (pixels),Height (pixels),Trial Runs,Image Objects Drawn
+,1200,700,5,5
+File Type,Time taken to load images to memory (seconds),Trial 1 (frames per second),Trial 2 (frames per second),Trial 3 (frames per second),Trial 4 (frames per second),Trial 5 (frames per second)
+./art/BMP16/ Speed Test,0.000768899917603,44.0083168641,42.3103949267,44.1073942464,43.9749214752,43.94628481
+./art/BMP24/ Speed Test,0.00132417678833,44.2620538185,44.2331046006,44.6153115629,44.2639026493,44.1436522724
+./art/BMP32/ Speed Test,0.00127100944519,40.9949337688,43.5377828352,43.9068723386 \ No newline at end of file