super-tux-commit Mailing List for Super Tux (Page 64)
Brought to you by:
wkendrick
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
(94) |
Apr
(500) |
May
(531) |
Jun
(196) |
Jul
(224) |
Aug
(193) |
Sep
(117) |
Oct
(115) |
Nov
(319) |
Dec
(97) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(19) |
Feb
|
Mar
(105) |
Apr
(41) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
2007 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(4) |
Jul
|
Aug
|
Sep
(7) |
Oct
(12) |
Nov
(26) |
Dec
(39) |
2009 |
Jan
(6) |
Feb
(15) |
Mar
(10) |
Apr
(25) |
May
(29) |
Jun
(21) |
Jul
(26) |
Aug
(8) |
Sep
(3) |
Oct
|
Nov
|
Dec
(10) |
2010 |
Jan
(5) |
Feb
(5) |
Mar
(2) |
Apr
|
May
(5) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
|
From: Ryan F. <sik...@us...> - 2004-05-19 22:46:21
|
Update of /cvsroot/super-tux/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21446 Modified Files: news.xml Log Message: - oops, forgot a link Index: news.xml =================================================================== RCS file: /cvsroot/super-tux/htdocs/news.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- news.xml 19 May 2004 22:43:40 -0000 1.3 +++ news.xml 19 May 2004 22:46:08 -0000 1.4 @@ -4,7 +4,8 @@ <news> <item date="19. May 2004"> Supertux 0.1.1 now has binaries for Windows and Mac OS X 10.3.x as well - as an <a href="http://www.autopackage.org">autopackage</a> installer. + as an <a href="http://www.autopackage.org">autopackage</a> installer + in our <a href="download.html">download section</a>. </item> <item date="11. May 2004"> |
From: Ryan F. <sik...@us...> - 2004-05-19 22:43:51
|
Update of /cvsroot/super-tux/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20877 Modified Files: download.xml news.xml Log Message: - added downloads Index: news.xml =================================================================== RCS file: /cvsroot/super-tux/htdocs/news.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- news.xml 11 May 2004 12:20:26 -0000 1.2 +++ news.xml 19 May 2004 22:43:40 -0000 1.3 @@ -2,6 +2,11 @@ <page title="SuperTux"> <section title="News"> <news> + <item date="19. May 2004"> + Supertux 0.1.1 now has binaries for Windows and Mac OS X 10.3.x as well + as an <a href="http://www.autopackage.org">autopackage</a> installer. + </item> + <item date="11. May 2004"> SuperTux 0.1.1 is out, still the same game as 0.1.0, features however a much improved font, some minor bugfixes and finally Index: download.xml =================================================================== RCS file: /cvsroot/super-tux/htdocs/download.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- download.xml 11 May 2004 19:17:04 -0000 1.10 +++ download.xml 19 May 2004 22:43:40 -0000 1.11 @@ -4,7 +4,9 @@ <subsection title="SuperTux (Milestone1) 0.1.1 - May 11, 2004"> <ul> <li>Source: <a href="http://prdownloads.sourceforge.net/super-tux/supertux-0.1.1.tar.bz2?download">supertux-0.1.1.tar.bz2</a></li> - <li>Windows Binary: <a href="http://www.stud.uni-karlsruhe.de/~uxsm/supertux-0.1.1-setup.exe">supertux-0.1.1-setup.exe</a></li> + <li>Windows Binary: <a href="http://prdownloads.sourceforge.net/super-tux/supertux-0.1.1-setup.exe?download">supertux-0.1.1-setup.exe</a></li> + <li>Mac OS X 10.3.x disk image: <a href="http://prdownloads.sourceforge.net/super-tux/supertux-0.1.1-macosx.dmg?download">supertux-0.1.1-macosx.dmg</a></li> + <li>Autopackage: <a href="http://prdownloads.sourceforge.net/super-tux/supertux-0.1.1.package?download">supertux-0.1.1.package</a></li> </ul> </subsection> @@ -15,12 +17,6 @@ </ul> </subsection> - <subsection title="SuperTux 0.0.6 - March 15, 2004"> - <ul> - <li>Source: <a href="http://prdownloads.sourceforge.net/super-tux/supertux-0.0.6.tar.bz2?download">supertux-0.0.6.tar.bz2</a></li> - </ul> - </subsection> - <subsection title="Older versions"> <ul> <li>If you feel like being nostalgic, check out our <a href="https://sourceforge.net/project/showfiles.php?group_id=69183">older versions</a></li> |
From: Ricardo C. <rm...@us...> - 2004-05-19 18:22:58
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1537/src Modified Files: gameobjs.cpp Log Message: Don't do string objects tests this way! Index: gameobjs.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameobjs.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- gameobjs.cpp 18 May 2004 19:17:33 -0000 1.27 +++ gameobjs.cpp 19 May 2004 18:22:48 -0000 1.28 @@ -159,7 +159,7 @@ // FIXME: overdrawing hack to clean the tile from the screen to // paint it later at on offseted position - if(plevel->bkgd_image[0] == '\0') + if(plevel->img_bkgd) { fillrect(base.x - scroll_x, base.y - scroll_y, 32,32, |
From: Ricardo C. <rm...@us...> - 2004-05-19 13:46:55
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7970/src Modified Files: player.cpp Log Message: Just improved a bit the butt jump control. You don't have to press Down while pressing Up, but still you've to press it right away... Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- player.cpp 18 May 2004 23:45:30 -0000 1.110 +++ player.cpp 19 May 2004 13:46:45 -0000 1.111 @@ -421,10 +421,10 @@ /* Do butt jump, in case the player has done the combination (full jump and hold DOWN) */ - if (input.down == UP && physic.get_velocity_y() < 0 && butt_jump) + if (input.down == UP && physic.get_velocity_y() == World::current()->get_level()->gravity && butt_jump) butt_jump = false; // in case DOWN is not hold after the full jump, disable it - if (butt_jump && on_ground() && size == BIG) + if (input.down == DOWN && butt_jump && on_ground() && size == BIG) { if(World::current()->trybreakbrick(base.x, base.y + base.height, false) || World::current()->trybreakbrick( |
From: Ricardo C. <rm...@us...> - 2004-05-19 10:55:42
|
Update of /cvsroot/super-tux/supertux/data/images/background In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7499/data/images/background Modified Files: cave2.jpg Log Message: Remake of the Ingo's background. Index: cave2.jpg =================================================================== RCS file: /cvsroot/super-tux/supertux/data/images/background/cave2.jpg,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 Binary files /tmp/cvsF3TXKV and /tmp/cvsh9S8uU differ |
From: Ricardo C. <rm...@us...> - 2004-05-19 10:29:51
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3111/src Modified Files: gameloop.cpp level.cpp leveleditor.cpp Log Message: Level's draw_bg() now takes full care of the background drawing. Index: level.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/level.cpp,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- level.cpp 18 May 2004 14:03:53 -0000 1.78 +++ level.cpp 19 May 2004 10:29:39 -0000 1.79 @@ -762,14 +762,21 @@ void Level::draw_bg() { - // Tile background horizontally - int sx = (int)((float)scroll_x * ((float)bkgd_speed/100.0f)) % img_bkgd->w; - int sy = (int)((float)scroll_y * ((float)bkgd_speed/100.0f)) % img_bkgd->h; - for (int x = 0; (x-1)*img_bkgd->w <= screen->w; x++) - for (int y = 0; (y-1)*img_bkgd->h <= screen->h; y++) - img_bkgd->draw_part(x == 0 ? sx : 0, y == 0 ? sy : 0, - x == 0 ? 0 : (img_bkgd->w * x) - sx, y == 0 ? 0 : (img_bkgd->h * y) - sy, - x == 0 ? img_bkgd->w - sx : img_bkgd->w, y == 0 ? img_bkgd->h - sy : img_bkgd->h); + if(img_bkgd) + { + // Tile background horizontally + int sx = (int)((float)scroll_x * ((float)bkgd_speed/100.0f)) % img_bkgd->w; + int sy = (int)((float)scroll_y * ((float)bkgd_speed/100.0f)) % img_bkgd->h; + for (int x = 0; (x-1)*img_bkgd->w <= screen->w; x++) + for (int y = 0; (y-1)*img_bkgd->h <= screen->h; y++) + img_bkgd->draw_part(x == 0 ? sx : 0, y == 0 ? sy : 0, + x == 0 ? 0 : (img_bkgd->w * x) - sx, y == 0 ? 0 : (img_bkgd->h * y) - sy, + x == 0 ? img_bkgd->w - sx : img_bkgd->w, y == 0 ? img_bkgd->h - sy : img_bkgd->h); + } + else + { + drawgradient(bkgd_top, bkgd_bottom); + } } void Index: gameloop.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameloop.cpp,v retrieving revision 1.132 retrieving revision 1.133 diff -u -d -r1.132 -r1.133 --- gameloop.cpp 18 May 2004 14:02:47 -0000 1.132 +++ gameloop.cpp 19 May 2004 10:29:39 -0000 1.133 @@ -145,10 +145,7 @@ char str[60]; - if (get_level()->img_bkgd) - get_level()->draw_bg(); - else - drawgradient(get_level()->bkgd_top, get_level()->bkgd_bottom); + get_level()->draw_bg(); sprintf(str, "%s", world->get_level()->name.c_str()); gold_text->drawf(str, 0, 220, A_HMIDDLE, A_TOP, 1); @@ -719,10 +716,7 @@ { char str[80]; - if (get_level()->img_bkgd) - get_level()->draw_bg(); - else - drawgradient(get_level()->bkgd_top, get_level()->bkgd_bottom); + get_level()->draw_bg(); blue_text->drawf("Result:", 0, 200, A_HMIDDLE, A_TOP, 1); Index: leveleditor.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.cpp,v retrieving revision 1.120 retrieving revision 1.121 diff -u -d -r1.120 -r1.121 --- leveleditor.cpp 15 May 2004 18:26:48 -0000 1.120 +++ leveleditor.cpp 19 May 2004 10:29:39 -0000 1.121 @@ -927,10 +927,7 @@ Uint8 a; /* Draw the real background */ - if (le_world->get_level()->img_bkgd) - le_world->get_level()->draw_bg(); - else - drawgradient(le_world->get_level()->bkgd_top, le_world->get_level()->bkgd_bottom); + le_world->get_level()->draw_bg(); if(le_current.IsTile()) { |
From: Ricardo C. <rm...@us...> - 2004-05-19 10:28:48
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2945/src Modified Files: special.cpp Log Message: Bullet fire counting with its height. Index: special.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/special.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- special.cpp 14 May 2004 08:36:13 -0000 1.45 +++ special.cpp 19 May 2004 10:28:38 -0000 1.46 @@ -62,7 +62,7 @@ base.xm = -BULLET_XM + xm; } - base.y = y; + base.y = y + base.height/2; base.ym = BULLET_STARTING_YM; old_base = base; kind = kind_; |
From: Ryan F. <sik...@us...> - 2004-05-19 04:17:13
|
Update of /cvsroot/super-tux/supertux/data/images/shared In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28927 Modified Files: mrbomb-explosion-1.png Log Message: - touched up bomb-explosion image Index: mrbomb-explosion-1.png =================================================================== RCS file: /cvsroot/super-tux/supertux/data/images/shared/mrbomb-explosion-1.png,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 Binary files /tmp/cvsrQXgdJ and /tmp/cvsZhNQ14 differ |
From: Ryan F. <sik...@us...> - 2004-05-19 03:50:04
|
Update of /cvsroot/super-tux/supertux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23803 Modified Files: TODO Log Message: -updated TODO Index: TODO =================================================================== RCS file: /cvsroot/super-tux/supertux/TODO,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- TODO 18 May 2004 21:11:41 -0000 1.53 +++ TODO 19 May 2004 03:49:53 -0000 1.54 @@ -20,6 +20,8 @@ [?] When jumping into a brick and there is a powerup, it should change direction or not, depending where the collision was. It currently sucks. - Discuss this, is that really what we want? +[?] Default keyboard setup should change. Up will be needed for other features + like going through doors and looking up, etc. [H] Change resolution to 800x600 - Levels need to be updated to resolution @@ -50,6 +52,7 @@ [M] bombs should explode directly when hit by another bomb or a mr.iceblock - right now they transform into a "squished mrbomb" +[L] Allow any object to be inside of a [?] box, ie. trampoline or badguy [L] in the "Welcome to Antarctica" level, the blocks next to the first growup look like there are 2 blocks above each other when bumping against them as small tux... @@ -65,3 +68,7 @@ configure.ac changed and it was automatically regenerated by make (instead of the user doing ./autogen.sh) + +Beyond Milestone2 +----------------- +- More things than just levels on the worldmap (similar to SMB3) |
From: Ryan F. <sik...@us...> - 2004-05-19 03:21:02
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18817 Modified Files: world.cpp Log Message: - much nicer scrolling - Patch submitted by David Kettler (Upsilon) Index: world.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/world.cpp,v retrieving revision 1.98 retrieving revision 1.99 diff -u -d -r1.98 -r1.99 --- world.cpp 18 May 2004 16:43:37 -0000 1.98 +++ world.cpp 19 May 2004 03:20:50 -0000 1.99 @@ -391,14 +391,34 @@ if(scrolling_timer.check()) { float final_scroll_x; + float constant1; + float constant2; if (right) final_scroll_x = tux_pos_x - (screen->w - X_SPACE); else final_scroll_x = tux_pos_x - X_SPACE; - scroll_x += (final_scroll_x - scroll_x) - / (frame_ratio * (CHANGE_DIR_SCROLL_SPEED / 100)) - + (tux.physic.get_velocity_x() * frame_ratio + tux.physic.get_acceleration_x() * frame_ratio * frame_ratio); + if((tux.physic.get_velocity_x() > 0 && tux.dir == RIGHT) || (tux.physic.get_velocity_x() < 0 && tux.dir == LEFT)) + { + constant1 = 1.0; + constant2 = .4; + } + else + { + constant1 = 0.; + constant2 = 0.; + } + + float number = 2.5/(frame_ratio * CHANGE_DIR_SCROLL_SPEED/1000)*exp((CHANGE_DIR_SCROLL_SPEED-scrolling_timer.get_left())/1400.); + if(left) number *= -1.; + + scroll_x += number + + constant1 * tux.physic.get_velocity_x() * frame_ratio + + constant2 * tux.physic.get_acceleration_x() * frame_ratio * frame_ratio; + + if ((right && final_scroll_x - scroll_x < 0) || (left && final_scroll_x - scroll_x > 0)) + scroll_x = final_scroll_x; + } else { |
From: Ricardo C. <rm...@us...> - 2004-05-18 23:45:40
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12789/src Modified Files: player.cpp Log Message: Only butt jump after a full jump. This approuch is different; instead of enabling butt jump only when the conditions are satisfory, keep it enabled and disable in case something doesn't satisfy them. Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- player.cpp 18 May 2004 23:15:31 -0000 1.109 +++ player.cpp 18 May 2004 23:45:30 -0000 1.110 @@ -405,6 +405,7 @@ --base.y; jumping = true; can_jump = false; + butt_jump = true; // player started jumping, enable butt jump if (size == SMALL) play_sound(sounds[SND_JUMP], SOUND_CENTER_SPEAKER); else @@ -415,13 +416,15 @@ { jumping = false; physic.set_velocity_y(0); + butt_jump = false; // jump was not full, disable butt jump } - if (input.down == DOWN && !on_ground() && !duck && size == BIG) - butt_jump = true; - else if (input.down == UP) - butt_jump = false; - if (input.down == DOWN && butt_jump && on_ground()) + /* Do butt jump, in case the player has done the combination + (full jump and hold DOWN) */ + if (input.down == UP && physic.get_velocity_y() < 0 && butt_jump) + butt_jump = false; // in case DOWN is not hold after the full jump, disable it + + if (butt_jump && on_ground() && size == BIG) { if(World::current()->trybreakbrick(base.x, base.y + base.height, false) || World::current()->trybreakbrick( @@ -429,7 +432,7 @@ // make tux jumping a little bit again after breaking the bricks physic.set_velocity_y(2); } - butt_jump = false; +// butt_jump = false; } if ( (issolid(base.x + base.width / 2, base.y + base.height + 64) || @@ -443,6 +446,9 @@ can_jump = true; } + if(on_ground()) /* Make sure jumping is off. */ + jumping = false; + input.old_up = input.up; } |
From: Ricardo C. <rm...@us...> - 2004-05-18 23:15:42
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6125/src Modified Files: player.cpp Log Message: Ryan was right, Tux was firing from the head :D Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.108 retrieving revision 1.109 diff -u -d -r1.108 -r1.109 --- player.cpp 18 May 2004 18:04:53 -0000 1.108 +++ player.cpp 18 May 2004 23:15:31 -0000 1.109 @@ -461,7 +461,8 @@ /* Shoot! */ if (input.fire == DOWN && input.old_fire == UP && got_power != NONE_POWER) { - World::current()->add_bullet(base.x, base.y, physic.get_velocity_x(), dir); + holding_something = true; + World::current()->add_bullet(base.x, base.y + (base.height/2), physic.get_velocity_x(), dir); input.old_fire = DOWN; } |
From: Ryan F. <sik...@us...> - 2004-05-18 21:11:50
|
Update of /cvsroot/super-tux/supertux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11631 Modified Files: TODO Log Message: - just some formatting stuff Index: TODO =================================================================== RCS file: /cvsroot/super-tux/supertux/TODO,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- TODO 18 May 2004 20:39:31 -0000 1.52 +++ TODO 18 May 2004 21:11:41 -0000 1.53 @@ -19,7 +19,7 @@ [?] When jumping into a brick and there is a powerup, it should change direction or not, depending where the collision was. It currently sucks. - - Discuss this, is that really what we want? + - Discuss this, is that really what we want? [H] Change resolution to 800x600 - Levels need to be updated to resolution @@ -33,9 +33,9 @@ [H] Camera movement shouldn't be so fast at the beggining, it takes the focus from the game (backscrolling) [H] Tux should fall while walking in tiles that have a space between. - - Possible solution: reduce Tux's width -[H] Enemies should turn upside down after being hit by an kicked - iceblock, fireball or bomb + - Possible solution: reduce Tux's width +[H] Enemies should turn upside down after being hit by an kicked iceblock, + fireball or bomb [M] Save score on per-level basis to make high-score [M] Save time on per-level basis to make low-time-score @@ -54,9 +54,9 @@ look like there are 2 blocks above each other when bumping against them as small tux... [L] time runs while being in in-game menu, at least a bit (jump, go to - menu, wait a bit, leave menu, Tux will 'flip' to the ground, - instead of fall, pause mode doesn't seem to have this problem, only - menu) + menu, wait a bit, leave menu, Tux will 'flip' to the ground, + instead of fall, pause mode doesn't seem to have this problem, only + menu) [L] catch exceptions thrown by lispreader [L] fadein/out for intro/extro would be nice [L] we only have a global counter for multiple coin blocks. This should be handled |
From: Ryan F. <sik...@us...> - 2004-05-18 20:39:41
|
Update of /cvsroot/super-tux/supertux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4409 Modified Files: TODO Log Message: -updated TODO Index: TODO =================================================================== RCS file: /cvsroot/super-tux/supertux/TODO,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- TODO 18 May 2004 17:17:32 -0000 1.51 +++ TODO 18 May 2004 20:39:31 -0000 1.52 @@ -1,10 +1,13 @@ -- To do for Milestone1 - +- To do for Milestone2 - http://super-tux.sf.net/ -Last update: May 3, 2004 - -These are mostly bugs: +High priority: milestone goals that should be implemented for next milestone +Medium priority: would be nice to have for next milestone, but should + be secondary to high priority goals +Low priority: things that should be fixed sometime +?: Things that need to be discussed to determine whether or not they should be + implemented Todo ---- @@ -12,62 +15,53 @@ M: medium priority L: low priority ?: bug or feature? + - needs discussion + +[?] When jumping into a brick and there is a powerup, it should change + direction or not, depending where the collision was. It currently sucks. + - Discuss this, is that really what we want? -[L] AX_CHECK_GL produces an error during configure, when something in - configure.ac changed and it was automatically regenerated by make (instead - of the user doing ./autogen.sh) [H] Change resolution to 800x600 - Levels need to be updated to resolution - Might still be some other bugs to iron out [H] Buttjump related things - - Right now only breaks bricks beneath tux - what else should it break + ? Right now only breaks bricks beneath tux - what else should it break - Breaks 1 box too much at the left when tux is facing left. - Should kill enemies with a certain range - - Should disable Tux Temporarily - matze: what does this mean? - Animation (need images) - -[H] Camera movement shouldn't be so fast at the beggining, it takes the focus from - the game (backscrolling) + ? Should disable Tux's movement temporarily (1 second?) +[H] Camera movement shouldn't be so fast at the beggining, it takes the focus + from the game (backscrolling) [H] Tux should fall while walking in tiles that have a space between. + - Possible solution: reduce Tux's width +[H] Enemies should turn upside down after being hit by an kicked + iceblock, fireball or bomb [M] Save score on per-level basis to make high-score [M] Save time on per-level basis to make low-time-score [M] Add bonus score for extra time left when finishing a level [M] When aborting a level, lives and score should remain the same as they - were before. Solution: make more dependency between the game engine and worldmap - or just backup those variables before starting a level. - fixed? + were before. Solution: make more dependency between the game engine and + worldmap or just backup those variables before starting a level. - fixed? +[M] when bumping a special with 2 blocks at once, it won't change direction +[M] tux get killed if he kicks a iceblock while at the same time bouncing on +[M] You shouldn't be able to stand on invisible blocks, before you bumped them + the roof +[M] bombs should explode directly when hit by another bomb or a mr.iceblock + - right now they transform into a "squished mrbomb" + [L] in the "Welcome to Antarctica" level, the blocks next to the first growup look like there are 2 blocks above each other when bumping against them as small tux... -[H] Enemies should turn upside down after being hit by an kicked - iceblock, fireball or bomb -[?] When jumping into a brick and there is a powerup, it should change - direction or not, depending where the collision was. It currently sucks. - - Discuss this, is that really what we want? - -[M] when bumping a special with 2 blocks at once, it won't change direction -[M] tux get killed if he kicks a iceblock while at the same time - bouncing on the roof - [L] time runs while being in in-game menu, at least a bit (jump, go to menu, wait a bit, leave menu, Tux will 'flip' to the ground, instead of fall, pause mode doesn't seem to have this problem, only menu) [L] catch exceptions thrown by lispreader [L] fadein/out for intro/extro would be nice - - -Stuff for past milestone1: --------------------------- -Note that this list is far from complete, but lists some bugs that we don't want -to touch before milestone1 at the moment. -- You shouldn't be able to stand on invisible blocks, before you bumped them -- bombs should explode directly when hit by another bomb or a mr.iceblock -- we only have a global counter for multiple coin blocks. This should be handled - per block. -- We should reduced the width of tux collision rectangle so that he falls easier - between 1 tile wide holes. -- The enabled/disabled icon in the options shouldn't be a cross. Some people - think the options are disabled because they're crossed. Better use a green - check mark. +[L] we only have a global counter for multiple coin blocks. This should be handled + per block. +[L] AX_CHECK_GL produces an error during configure, when something in + configure.ac changed and it was automatically regenerated by make (instead + of the user doing ./autogen.sh) |
From: Ryan F. <sik...@us...> - 2004-05-18 19:17:46
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17117 Modified Files: gameobjs.cpp gameobjs.h Log Message: - ObjectManager stuff Index: gameobjs.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameobjs.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- gameobjs.cpp 18 May 2004 18:12:16 -0000 1.26 +++ gameobjs.cpp 18 May 2004 19:17:33 -0000 1.27 @@ -479,5 +479,69 @@ */ } +void ObjectManager::draw_bg() +{ +/* + for (unsigned int i = 0; i < bouncy_bricks.size(); ++i) + bouncy_bricks[i]->draw(); + + for (BadGuys::iterator i = bad_guys.begin(); i != bad_guys.end(); ++i) + (*i)->draw(); + + for (Trampolines::iterator i = trampolines.begin(); i != trampolines.end(); ++i) + (*i)->draw(); +*/ +} + +void ObjectManager::draw_fg() +{ +/* + for (unsigned int i = 0; i < bullets.size(); ++i) + bullets[i].draw(); + + for (unsigned int i = 0; i < floating_scores.size(); ++i) + floating_scores[i]->draw(); + + for (unsigned int i = 0; i < upgrades.size(); ++i) + upgrades[i].draw(); + + for (unsigned int i = 0; i < bouncy_distros.size(); ++i) + bouncy_distros[i]->draw(); + + for (unsigned int i = 0; i < broken_bricks.size(); ++i) + broken_bricks[i]->draw(); +*/ +} + +void ObjectManager::actions() +{ +/* + for (unsigned int i = 0; i < bouncy_distros.size(); i++) + bouncy_distros[i]->action(frame_ratio); + + for (unsigned int i = 0; i < broken_bricks.size(); i++) + broken_bricks[i]->action(frame_ratio); + + // Handle all kinds of game objects + for (unsigned int i = 0; i < bouncy_bricks.size(); i++) + bouncy_bricks[i]->action(frame_ratio); + + for (unsigned int i = 0; i < floating_scores.size(); i++) + floating_scores[i]->action(frame_ratio); + + for (unsigned int i = 0; i < bullets.size(); ++i) + bullets[i].action(frame_ratio); + + for (unsigned int i = 0; i < upgrades.size(); i++) + upgrades[i].action(frame_ratio); + + for (BadGuys::iterator i = bad_guys.begin(); i != bad_guys.end(); ++i) + (*i)->action(frame_ratio); + + for (Trampolines::iterator i = trampolines.begin(); i != trampolines.end(); ++i) + (*i)->action(frame_ratio); +*/ +} + /* EOF */ Index: gameobjs.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameobjs.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- gameobjs.h 18 May 2004 18:12:16 -0000 1.17 +++ gameobjs.h 18 May 2004 19:17:33 -0000 1.18 @@ -152,10 +152,10 @@ // XXX Objects will have to be split up into two categories: // - Drawn before tux // - Drawn after tux + // Eventually Player should be a part of ObjectManager std::vector<BadGuy*> badguys; std::vector<Trampoline> trampolines; - //std::vector<ParticleSystem> particle_systems; std::vector<BouncyDistro> bouncy_distros; std::vector<BrokenBrick> broken_bricks; std::vector<BouncyBrick> bouncy_bricks; @@ -167,6 +167,10 @@ public: static ObjectManager* instance() { return instance_ ? instance_ : instance_ = new ObjectManager(); } static void destroy_instance() { delete instance_; instance_ = 0; } + + void draw_bg(); + void draw_fg(); + void actions(); /* Object* get(unsigned int id) { if(id < badguys.size()) |
From: Ryan F. <sik...@us...> - 2004-05-18 18:12:40
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1176 Modified Files: badguy.cpp badguy.h gameobjs.cpp gameobjs.h type.h Log Message: - barebones BadGuyManager -> ObjectManager Index: badguy.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/badguy.h,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- badguy.h 17 May 2004 09:11:58 -0000 1.41 +++ badguy.h 18 May 2004 18:12:16 -0000 1.42 @@ -179,36 +179,6 @@ : kind(BAD_SNOWBALL), x(0), y(0), stay_on_platform(false) {} }; -class BadGuyManager -{ - private: - BadGuyManager(); - ~BadGuyManager(); - - std::vector<BadGuy*> badguys; - static BadGuyManager* instance_ ; - - void load_badguys(std::string filename); - - public: - static BadGuyManager* instance() { return instance_ ? instance_ : instance_ = new BadGuyManager(); } - static void destroy_instance() { delete instance_; instance_ = 0; } - - BadGuy* get(unsigned int id) { - if(id < badguys.size()) - { - return badguys[id]; - } - else - { - // Never return 0, but return the 0th tile instead so that - // user code doesn't have to check for NULL pointers all over - // the place - return badguys[0]; - } - } -}; - #endif /*SUPERTUX_BADGUY_H*/ /* Local Variables: */ Index: gameobjs.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameobjs.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- gameobjs.h 17 May 2004 05:24:40 -0000 1.16 +++ gameobjs.h 18 May 2004 18:12:16 -0000 1.17 @@ -138,9 +138,52 @@ unsigned int frame; }; - void load_object_gfx(); + +class ObjectManager +{ + private: + ObjectManager(); + ~ObjectManager(); + + static ObjectManager* instance_; + + // XXX Objects will have to be split up into two categories: + // - Drawn before tux + // - Drawn after tux + + std::vector<BadGuy*> badguys; + std::vector<Trampoline> trampolines; + //std::vector<ParticleSystem> particle_systems; + std::vector<BouncyDistro> bouncy_distros; + std::vector<BrokenBrick> broken_bricks; + std::vector<BouncyBrick> bouncy_bricks; + //std::vector<Upgrade> upgrades; + //std::vector<Bullet> bullets; + + void load_badguys(std::string filename); + + public: + static ObjectManager* instance() { return instance_ ? instance_ : instance_ = new ObjectManager(); } + static void destroy_instance() { delete instance_; instance_ = 0; } + +/* Object* get(unsigned int id) { + if(id < badguys.size()) + { + return badguys[id]; + } + else + { + // Never return 0, but return the 0th tile instead so that + // user code doesn't have to check for NULL pointers all over + // the place + return badguys[0]; + } + } +*/ +}; + #endif /* Local Variables: */ Index: type.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/type.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- type.h 13 May 2004 23:16:46 -0000 1.18 +++ type.h 18 May 2004 18:12:16 -0000 1.19 @@ -87,5 +87,7 @@ void string_list_add_item(string_list_type* pstring_list, const char* str); void string_list_free(string_list_type* pstring_list); + + #endif /*SUPERTUX_TYPE_H*/ Index: badguy.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/badguy.cpp,v retrieving revision 1.79 retrieving revision 1.80 diff -u -d -r1.79 -r1.80 --- badguy.cpp 17 May 2004 17:01:21 -0000 1.79 +++ badguy.cpp 18 May 2004 18:12:16 -0000 1.80 @@ -1196,136 +1196,4 @@ { } -//--------------------------------------------------------------------------- - -BadGuyManager::BadGuyManager() -{ - std::string filename = datadir + "/images/tilesets/supertux.stbg"; - load_badguys(filename); -} - -BadGuyManager::~BadGuyManager() -{ - for(std::vector<BadGuy*>::iterator i = badguys.begin(); i != badguys.end(); ++i) { - delete *i; - } -} - -void BadGuyManager::load_badguys(std::string filename) -{ -/* - lisp_object_t* root_obj = lisp_read_from_file(filename); - - if (!root_obj) - st_abort("Couldn't load file", filename); - - if (strcmp(lisp_symbol(lisp_car(root_obj)), "supertux-badguys") == 0) - { - lisp_object_t* cur = lisp_cdr(root_obj); - - while(!lisp_nil_p(cur)) - { - lisp_object_t* element = lisp_car(cur); - - if (strcmp(lisp_symbol(lisp_car(element)), "badguy") == 0) - { - - - Tile* tile = new Tile; - tile->id = -1; - tile->solid = false; - tile->brick = false; - tile->ice = false; - tile->water = false; - tile->fullbox = false; - tile->distro = false; - tile->goal = false; - tile->data = 0; - tile->next_tile = 0; - tile->anim_speed = 25; - - LispReader reader(lisp_cdr(element)); - assert(reader.read_int("id", &tile->id)); - reader.read_bool("solid", &tile->solid); - reader.read_bool("brick", &tile->brick); - reader.read_bool("ice", &tile->ice); - reader.read_bool("water", &tile->water); - reader.read_bool("fullbox", &tile->fullbox); - reader.read_bool("distro", &tile->distro); - reader.read_bool("goal", &tile->goal); - reader.read_int("data", &tile->data); - reader.read_int("anim-speed", &tile->anim_speed); - reader.read_int("next-tile", &tile->next_tile); - reader.read_string_vector("images", &tile->filenames); - reader.read_string_vector("editor-images", &tile->editor_filenames); - - for(std::vector<std::string>::iterator it = tile-> - filenames.begin(); - it != tile->filenames.end(); - ++it) - { - Surface* cur_image; - tile->images.push_back(cur_image); - tile->images[tile->images.size()-1] = new Surface( - datadir + "/images/tilesets/" + (*it), - USE_ALPHA); - } - for(std::vector<std::string>::iterator it = tile->editor_filenames.begin(); - it != tile->editor_filenames.end(); - ++it) - { - Surface* cur_image; - tile->editor_images.push_back(cur_image); - tile->editor_images[tile->editor_images.size()-1] = new Surface( - datadir + "/images/tilesets/" + (*it), - USE_ALPHA); - } - - if (tile->id + tileset_id >= int(tiles.size()) - ) - tiles.resize(tile->id + tileset_id+1); - - tiles[tile->id + tileset_id] = tile; - } - else if (strcmp(lisp_symbol(lisp_car(element)), "tileset") == 0) - { - LispReader reader(lisp_cdr(element)); - std::string filename; - reader.read_string("file", &filename); - filename = datadir + "/images/tilesets/" + filename; - load_tileset(filename); - } - else if (strcmp(lisp_symbol(lisp_car(element)), "tilegroup") == 0) - { - TileGroup new_; - LispReader reader(lisp_cdr(element)); - reader.read_string("name", &new_.name); - reader.read_int_vector("tiles", &new_.tiles); - if(!tilegroups_) - tilegroups_ = new std::set<TileGroup>; - tilegroups_->insert(new_).first; - } - else if (strcmp(lisp_symbol(lisp_car(element)), "properties") == 0) - { - LispReader reader(lisp_cdr(element)); - reader.read_int("id", &tileset_id); - tileset_id *= 1000; - } - else - { - puts("Unhandled symbol"); - } - - cur = lisp_cdr(cur); - } - } - else - { - assert(0); - } - - lisp_free(root_obj); -*/ -} - // EOF // Index: gameobjs.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameobjs.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- gameobjs.cpp 17 May 2004 17:01:21 -0000 1.25 +++ gameobjs.cpp 18 May 2004 18:12:16 -0000 1.26 @@ -345,5 +345,139 @@ } } + +/* Object Manager */ +//--------------------------------------------------------------------------- + +ObjectManager::ObjectManager() +{ + std::string filename = datadir + "/images/tilesets/supertux.stbg"; + load_badguys(filename); +} + +ObjectManager::~ObjectManager() +{ + for(std::vector<BadGuy*>::iterator i = badguys.begin(); i != badguys.end(); ++i) { + delete *i; + } +} + +void ObjectManager::load_badguys(std::string filename) +{ +/* + lisp_object_t* root_obj = lisp_read_from_file(filename); + + if (!root_obj) + st_abort("Couldn't load file", filename); + + if (strcmp(lisp_symbol(lisp_car(root_obj)), "supertux-badguys") == 0) + { + lisp_object_t* cur = lisp_cdr(root_obj); + + while(!lisp_nil_p(cur)) + { + lisp_object_t* element = lisp_car(cur); + + if (strcmp(lisp_symbol(lisp_car(element)), "badguy") == 0) + { + + + Tile* tile = new Tile; + tile->id = -1; + tile->solid = false; + tile->brick = false; + tile->ice = false; + tile->water = false; + tile->fullbox = false; + tile->distro = false; + tile->goal = false; + tile->data = 0; + tile->next_tile = 0; + tile->anim_speed = 25; + + LispReader reader(lisp_cdr(element)); + assert(reader.read_int("id", &tile->id)); + reader.read_bool("solid", &tile->solid); + reader.read_bool("brick", &tile->brick); + reader.read_bool("ice", &tile->ice); + reader.read_bool("water", &tile->water); + reader.read_bool("fullbox", &tile->fullbox); + reader.read_bool("distro", &tile->distro); + reader.read_bool("goal", &tile->goal); + reader.read_int("data", &tile->data); + reader.read_int("anim-speed", &tile->anim_speed); + reader.read_int("next-tile", &tile->next_tile); + reader.read_string_vector("images", &tile->filenames); + reader.read_string_vector("editor-images", &tile->editor_filenames); + + for(std::vector<std::string>::iterator it = tile-> + filenames.begin(); + it != tile->filenames.end(); + ++it) + { + Surface* cur_image; + tile->images.push_back(cur_image); + tile->images[tile->images.size()-1] = new Surface( + datadir + "/images/tilesets/" + (*it), + USE_ALPHA); + } + for(std::vector<std::string>::iterator it = tile->editor_filenames.begin(); + it != tile->editor_filenames.end(); + ++it) + { + Surface* cur_image; + tile->editor_images.push_back(cur_image); + tile->editor_images[tile->editor_images.size()-1] = new Surface( + datadir + "/images/tilesets/" + (*it), + USE_ALPHA); + } + + if (tile->id + tileset_id >= int(tiles.size()) + ) + tiles.resize(tile->id + tileset_id+1); + + tiles[tile->id + tileset_id] = tile; + } + else if (strcmp(lisp_symbol(lisp_car(element)), "tileset") == 0) + { + LispReader reader(lisp_cdr(element)); + std::string filename; + reader.read_string("file", &filename); + filename = datadir + "/images/tilesets/" + filename; + load_tileset(filename); + } + else if (strcmp(lisp_symbol(lisp_car(element)), "tilegroup") == 0) + { + TileGroup new_; + LispReader reader(lisp_cdr(element)); + reader.read_string("name", &new_.name); + reader.read_int_vector("tiles", &new_.tiles); + if(!tilegroups_) + tilegroups_ = new std::set<TileGroup>; + tilegroups_->insert(new_).first; + } + else if (strcmp(lisp_symbol(lisp_car(element)), "properties") == 0) + { + LispReader reader(lisp_cdr(element)); + reader.read_int("id", &tileset_id); + tileset_id *= 1000; + } + else + { + puts("Unhandled symbol"); + } + + cur = lisp_cdr(cur); + } + } + else + { + assert(0); + } + + lisp_free(root_obj); +*/ +} + /* EOF */ |
From: Marek M. <wa...@us...> - 2004-05-18 18:05:03
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31722/src Modified Files: player.cpp Log Message: Changed back the sliding fix because it was buggy Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.107 retrieving revision 1.108 diff -u -d -r1.107 -r1.108 --- player.cpp 18 May 2004 17:56:28 -0000 1.107 +++ player.cpp 18 May 2004 18:04:53 -0000 1.108 @@ -203,7 +203,7 @@ if(!duck && on_ground() && old_base.x == base.x && old_base.y == base.y && collision_object_map(base)) { - base.x += frame_ratio * WALK_SPEED; + base.x += frame_ratio * WALK_SPEED * (dir ? 1: -1); previous_base = old_base = base; } |
From: Matze B. <mat...@us...> - 2004-05-18 17:56:39
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29818 Modified Files: player.cpp Log Message: reverted totally pointless commit of rmcruz. size does NOT contain the current power of tux. Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.106 retrieving revision 1.107 diff -u -d -r1.106 -r1.107 --- player.cpp 18 May 2004 17:46:05 -0000 1.106 +++ player.cpp 18 May 2004 17:56:28 -0000 1.107 @@ -417,7 +417,7 @@ physic.set_velocity_y(0); } - if (input.down == DOWN && !on_ground() && !duck && size != SMALL) + if (input.down == DOWN && !on_ground() && !duck && size == BIG) butt_jump = true; else if (input.down == UP) butt_jump = false; |
From: Ricardo C. <rm...@us...> - 2004-05-18 17:46:14
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27691/src Modified Files: player.cpp Log Message: Fix bug reported by Ryan: in level smaller than 19, Tux would stay in dead move forever. Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.105 retrieving revision 1.106 diff -u -d -r1.105 -r1.106 --- player.cpp 18 May 2004 17:20:27 -0000 1.105 +++ player.cpp 18 May 2004 17:46:05 -0000 1.106 @@ -799,7 +799,7 @@ bool Player::is_dead() { - if(base.y > screen->h + scroll_y || + if(base.y > screen->h + scroll_y || base.y > World::current()->get_level()->height*32 || base.x < scroll_x - AUTOSCROLL_DEAD_INTERVAL) // can happen in auto-scrolling return true; else |
From: Ricardo C. <ri...@ae...> - 2004-05-18 17:22:56
|
You may remove that point, that has been improved. Ricardo Em Ter=E7a, 18 de Maio de 2004 18:17, o Matze Braun escreveu: > +[?] When jumping into a brick and there is a powerup, it should change > + direction or not, depending where the collision was. It currently > sucks. + - Discuss this, is that really what we want? > =2D-=20 In India, "cold weather" is merely a conventional phrase and has come into use through the necessity of having some way to distinguish between weather which will melt a brass door-knob and weather which will only make it mushy. -- Mark Twain |
From: Ricardo C. <rm...@us...> - 2004-05-18 17:20:36
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21961/src Modified Files: player.cpp Log Message: Tiny fix. Just to make fire or ice Tux to be able to do butt jump, as well. Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.104 retrieving revision 1.105 diff -u -d -r1.104 -r1.105 --- player.cpp 18 May 2004 17:12:54 -0000 1.104 +++ player.cpp 18 May 2004 17:20:27 -0000 1.105 @@ -417,7 +417,7 @@ physic.set_velocity_y(0); } - if (input.down == DOWN && !on_ground() && !duck && size == BIG) + if (input.down == DOWN && !on_ground() && !duck && size != SMALL) butt_jump = true; else if (input.down == UP) butt_jump = false; |
From: Ricardo C. <ri...@ae...> - 2004-05-18 17:17:44
|
If it is working well, it should allow Y background image scrolling. This is usefull for instance in underground levels, where you can have a r= ock=20 background and it scrolls... But the underground image that Ingo made doesn= 't=20 allow repetition in Y :( Ricardo Cruz Em Ter=E7a, 18 de Maio de 2004 18:01, o Ryan Flegel escreveu: > Just curious, what exactly does this do? =2D-=20 When I heated my home with oil, I used an average of 800 gallons a year. I have found that I can keep comfortably warm for an entire winter with slightly over half that quantity of beer. -- Dave Barry, "Postpetroleum Guzzler" |
From: Matze B. <mat...@us...> - 2004-05-18 17:17:43
|
Update of /cvsroot/super-tux/supertux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21289 Modified Files: TODO Log Message: TODO update Index: TODO =================================================================== RCS file: /cvsroot/super-tux/supertux/TODO,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- TODO 17 May 2004 23:15:43 -0000 1.50 +++ TODO 18 May 2004 17:17:32 -0000 1.51 @@ -9,19 +9,22 @@ Todo ---- H: high priority +M: medium priority L: low priority +?: bug or feature? -[H] AX_CHECK_GL produces an error during configure +[L] AX_CHECK_GL produces an error during configure, when something in + configure.ac changed and it was automatically regenerated by make (instead + of the user doing ./autogen.sh) [H] Change resolution to 800x600 - Levels need to be updated to resolution - Might still be some other bugs to iron out [H] Buttjump related things - - Right now only breaks bricks beneath tux - - Should only work when Tux is bug + - Right now only breaks bricks beneath tux - what else should it break + - Breaks 1 box too much at the left when tux is facing left. - Should kill enemies with a certain range - - Should disable Tux Temporarily + - Should disable Tux Temporarily - matze: what does this mean? - Animation (need images) - - Change controls (just press down while in air, not Up+Down) [H] Camera movement shouldn't be so fast at the beggining, it takes the focus from the game (backscrolling) @@ -33,13 +36,14 @@ [M] When aborting a level, lives and score should remain the same as they were before. Solution: make more dependency between the game engine and worldmap or just backup those variables before starting a level. - fixed? -[H] in the "Welcome to Antarctica" level, the blocks next to the first growup +[L] in the "Welcome to Antarctica" level, the blocks next to the first growup look like there are 2 blocks above each other when bumping against them as small tux... [H] Enemies should turn upside down after being hit by an kicked iceblock, fireball or bomb -[H] When jumping into a brick and there is a powerup, it should change direction or not, - depending where the collision was. It currently sucks. +[?] When jumping into a brick and there is a powerup, it should change + direction or not, depending where the collision was. It currently sucks. + - Discuss this, is that really what we want? [M] when bumping a special with 2 blocks at once, it won't change direction [M] tux get killed if he kicks a iceblock while at the same time |
From: Ricardo C. <ri...@ae...> - 2004-05-18 17:17:02
|
I've just changed the butt jump controls, as well... :(( Anyway, your code looks good. The only problem is that the butt jump shoul= d=20 only be performed after a full jump... It is working in every each jump. I also think that small Tux shouldn't be able to do butt jumps, agree? Ricardo Cruz Em Ter=E7a, 18 de Maio de 2004 17:43, o Matze Braun escreveu: > Update of /cvsroot/super-tux/supertux/src > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11720/src > > Modified Files: > player.cpp world.cpp world.h > Log Message: > fixed butt jump to work even when up-key is not pressed, added a little > jump after breaking a brick. The thing still has problems with breaking t= he > correct fix, as the used position is not the actual one, but the target > position for the next frame, so you can break some bricks that aren't > reachable normally > > Index: player.cpp > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v > retrieving revision 1.101 > retrieving revision 1.102 > diff -u -d -r1.101 -r1.102 > --- player.cpp 18 May 2004 14:16:37 -0000 1.101 > +++ player.cpp 18 May 2004 16:43:37 -0000 1.102 > @@ -390,32 +390,27 @@ > Player::handle_vertical_input() > { > // Press jump key > - if(input.up =3D=3D DOWN && can_jump) > + if(input.up =3D=3D DOWN && can_jump && on_ground()) > { > - if (on_ground()) > - { > - // jump higher if we are running > - if (fabs(physic.get_velocity_x()) > MAX_WALK_XM) > - physic.set_velocity_y(5.8); > - else > - physic.set_velocity_y(5.2); > + // jump higher if we are running > + if (fabs(physic.get_velocity_x()) > MAX_WALK_XM) > + physic.set_velocity_y(5.8); > + else > + physic.set_velocity_y(5.2); > > - --base.y; > - jumping =3D true; > - can_jump =3D false; > - if (size =3D=3D SMALL) > - play_sound(sounds[SND_JUMP], SOUND_CENTER_SPEAKER); > - else > - play_sound(sounds[SND_BIGJUMP], SOUND_CENTER_SPEAKER); > - } > + --base.y; > + jumping =3D true; > + can_jump =3D false; > + if (size =3D=3D SMALL) > + play_sound(sounds[SND_JUMP], SOUND_CENTER_SPEAKER); > + else > + play_sound(sounds[SND_BIGJUMP], SOUND_CENTER_SPEAKER); > } > // Let go of jump key > - else if(input.up =3D=3D UP && jumping) > + else if(input.up =3D=3D UP && jumping && physic.get_velocity_y() > 0) > { > jumping =3D false; > - if(physic.get_velocity_y() > 0) { > - physic.set_velocity_y(0); > - } > + physic.set_velocity_y(0); > } > > if (input.down =3D=3D DOWN && !on_ground() && !duck) > @@ -424,15 +419,15 @@ > butt_jump =3D false; > if (input.down =3D=3D DOWN && butt_jump && on_ground()) > { > - if (isbrick(base.x, base.y + base.height)) > - World::current()->trybreakbrick(base.x, base.y + base.height, > false); - if (isbrick(base.x + base.width, base.y + base.height)) > - World::current()->trybreakbrick(base.x + base.width, base.y + > base.height, false); - > + if(World::current()->trybreakbrick(base.x, base.y + base.height, > false) + || World::current()->trybreakbrick( > + base.x + base.width, base.y + base.height, false)) { > + // make tux jumping a little bit again after breaking the bricks > + physic.set_velocity_y(2); > + } > butt_jump =3D false; > } > > - > if ( (issolid(base.x + base.width / 2, base.y + base.height + 64) || > issolid(base.x + 1, base.y + base.height + 64) || > issolid(base.x + base.width - 1, base.y + base.height + 64)) > @@ -457,13 +452,9 @@ > > if (on_ground() && input.up =3D=3D UP) > can_jump =3D true; > - if (input.up =3D=3D DOWN || (input.up =3D=3D UP && jumping)) > - { > - handle_vertical_input(); > - } > + handle_vertical_input(); > > /* Shoot! */ > - > if (input.fire =3D=3D DOWN && input.old_fire =3D=3D UP && got_power != =3D > NONE_POWER) { > World::current()->add_bullet(base.x, base.y, > physic.get_velocity_x(), dir); > > Index: world.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/super-tux/supertux/src/world.h,v > retrieving revision 1.40 > retrieving revision 1.41 > diff -u -d -r1.40 -r1.41 > --- world.h 16 May 2004 01:36:54 -0000 1.40 > +++ world.h 18 May 2004 16:43:37 -0000 1.41 > @@ -111,7 +111,7 @@ > void trygrabdistro(float x, float y, int bounciness); > > /** Try to break the brick at the given coordinates */ > - void trybreakbrick(float x, float y, bool small); > + bool trybreakbrick(float x, float y, bool small); > > /** Try to get the content out of a bonus box, thus emptying it */ > void tryemptybox(float x, float y, Direction col_side); > > Index: world.cpp > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/super-tux/supertux/src/world.cpp,v > retrieving revision 1.97 > retrieving revision 1.98 > diff -u -d -r1.97 -r1.98 > --- world.cpp 18 May 2004 14:16:38 -0000 1.97 > +++ world.cpp 18 May 2004 16:43:37 -0000 1.98 > @@ -643,7 +643,7 @@ > } > > /* Break a brick: */ > -void > +bool > World::trybreakbrick(float x, float y, bool small) > { > Level* plevel =3D get_level(); > @@ -677,6 +677,7 @@ > play_sound(sounds[SND_DISTRO], SOUND_CENTER_SPEAKER); > player_status.score =3D player_status.score + SCORE_DISTRO; > player_status.distros++; > + return true; > } > else if (!small) > { > @@ -691,8 +692,12 @@ > /* Get some score: */ > play_sound(sounds[SND_BRICK], SOUND_CENTER_SPEAKER); > player_status.score =3D player_status.score + SCORE_BRICK; > + > + return true; > } > } > + > + return false; > } > > /* Empty a box: */ > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: SourceForge.net Broadband > Sign-up now for SourceForge Broadband and get the fastest > 6.0/768 connection for only $19.95/mo for the first 3 months! > http://ads.osdn.com/?ad_id=3D2562&alloc_id=3D6184&op=3Dclick > _______________________________________________ > Super-tux-commit mailing list > Sup...@li... > https://lists.sourceforge.net/lists/listinfo/super-tux-commit =2D-=20 HOW TO PROVE IT, PART 7 proof by forward reference: Reference is usually to a forthcoming paper of the author,=20 which is often not as forthcoming as at first. proof by semantic shift: Some of the standard but inconvenient definitions are changed=20 for the statement of the result. proof by appeal to intuition: Cloud-shaped drawings frequently help here. |
From: Marek M. <wa...@us...> - 2004-05-18 17:13:05
|
Update of /cvsroot/super-tux/supertux/data/levels/world1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20048/data/levels/world1 Modified Files: level11.stl Log Message: Changed it so that only big Tux is able to butt-jump Prevented big Tux from being able to slide under one-tile-wide spaces Now he will just slide out again the direction he came from That allows to create places where being small Tux is an advantage Index: level11.stl =================================================================== RCS file: /cvsroot/super-tux/supertux/data/levels/world1/level11.stl,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- level11.stl 16 May 2004 18:19:35 -0000 1.12 +++ level11.stl 18 May 2004 17:12:54 -0000 1.13 @@ -34,11 +34,11 @@ 11 21 8 8 8 8 8 8 8 8 8 9 0 0 0 0 0 0 0 7 8 8 8 9 0 0 0 0 0 0 0 7 8 8 8 9 0 0 0 0 0 0 13 14 14 14 15 0 0 0 0 0 0 13 14 14 14 15 0 0 0 0 0 0 10 11 11 19 12 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 30 18 0 0 0 16 31 11 11 12 0 0 10 11 11 30 18 0 0 0 0 0 0 0 0 0 0 7 8 8 8 59 60 8 8 59 60 8 8 8 8 8 9 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 10 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 58 0 0 0 0 0 0 0 0 0 0 0 57 58 0 0 0 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 48 0 0 0 13 14 14 14 14 14 14 14 14 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 58 48 48 59 60 0 0 59 60 48 48 57 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 14 14 14 14 23 11 11 11 20 15 0 0 0 0 0 0 0 0 0 0 13 14 23 11 11 11 11 11 11 11 11 11 11 11 11 11 20 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 11 11 20 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 58 0 0 0 0 0 0 0 0 0 0 59 60 0 0 0 0 0 0 0 0 0 57 58 0 0 0 0 0 0 0 0 59 60 0 0 0 0 0 0 0 0 0 0 7 51 52 8 8 8 8 8 8 8 8 8 133 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 132 132 8 8 8 8 8 11 20 14 14 14 14 14 14 14 14 14 15 0 0 0 0 0 0 0 13 14 14 14 15 0 0 0 0 0 0 0 13 14 14 14 15 0 0 0 0 0 0 10 19 11 11 12 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 16 31 11 30 18 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 30 18 0 0 0 0 0 0 16 17 17 17 17 17 17 17 17 18 0 0 0 0 0 16 17 17 18 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 0 0 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 30 18 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 0 0 0 57 58 0 0 0 0 48 48 0 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 59 60 0 0 0 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 7 8 8 8 8 8 8 8 8 8 9 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 7 8 8 8 8 8 8 8 8 8 8 8 9 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 7 8 22 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 21 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 7 8 8 8 8 8 8 8 8 59 60 8 8 8 8 8 8 8 8 8 8 59 60 8 8 8 8 8 8 8 8 8 59 60 8 8 8 8 8 8 8 8 59 60 9 0 0 0 0 0 0 0 0 0 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 10 19 11 11 12 0 0 0 0 0 0 16 31 11 30 18 0 0 0 0 0 0 16 31 11 30 18 0 0 0 0 0 0 0 16 17 18 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 19 11 11 30 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 22 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 30 18 0 0 0 0 0 0 0 0 0 0 0 0 7 57 58 9 0 0 0 7 59 60 9 0 0 0 0 0 0 0 7 59 60 9 0 0 0 0 0 0 0 0 0 7 59 60 9 0 0 0 7 59 60 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 11 30 18 0 0 13 14 14 14 14 14 14 14 14 14 15 48 48 59 60 0 0 59 60 0 0 59 60 0 0 59 60 48 48 13 14 14 14 14 14 14 14 14 14 14 14 15 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 13 14 23 11 11 11 11 19 11 11 11 11 11 11 11 11 19 11 11 11 20 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 - 11 11 11 19 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 19 12 0 0 0 0 0 0 0 16 31 11 30 18 0 0 0 0 0 0 0 16 17 18 0 0 0 0 0 0 0 0 16 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 23 11 11 11 11 11 11 11 11 11 11 11 11 11 30 18 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 15 0 0 0 13 14 14 15 0 0 0 0 0 0 0 13 14 14 15 0 0 0 0 0 0 0 0 0 13 14 14 15 0 0 0 13 14 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 7 8 22 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 0 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 - 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 16 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 30 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 17 18 0 0 0 16 17 17 18 0 0 0 0 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 10 11 11 12 0 0 0 10 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 16 17 17 17 17 17 17 17 17 17 17 17 18 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 13 14 23 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 20 77 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 - 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 12 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 6 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 0 0 0 0 0 0 0 0 0 0 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 - 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 6 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 11 11 11 19 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 19 12 0 0 0 0 0 0 0 16 31 11 30 18 0 0 0 0 0 0 0 16 17 18 0 0 0 0 0 0 0 0 16 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 23 11 11 11 11 11 11 11 11 11 11 11 11 11 30 18 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 15 0 0 0 13 14 14 15 0 0 0 0 0 0 0 13 14 14 15 0 0 0 0 0 0 0 0 0 13 14 14 15 0 0 0 13 14 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 7 8 22 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 21 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 16 31 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 + 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 16 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 30 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 17 18 0 0 0 16 17 17 18 0 0 0 0 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 10 11 11 12 0 0 0 10 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 16 17 17 17 17 17 17 17 17 17 17 17 18 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 13 14 23 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 20 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 + 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 12 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 6 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 0 0 0 0 0 0 0 0 0 0 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 + 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 17 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 6 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 17 31 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 10 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 12 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 59 60 0 0 59 60 0 0 59 60 0 0 59 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) (background-tm @@ -78,10 +78,10 @@ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 0 0 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) |