author | ecalot
<ecalot> 2005-02-20 20:31:43 UTC |
committer | ecalot
<ecalot> 2005-02-20 20:31:43 UTC |
parent | 0bdb6bd34ca9eb4e2ae4c506e6e5a4fb37d57c2d |
FP/src/conf/states/main.conf | +2 | -0 |
FP/src/ker/kernel.c | +120 | -134 |
FP/src/ker/kid.c | +1 | -1 |
diff --git a/FP/src/conf/states/main.conf b/FP/src/conf/states/main.conf index befe5bc..5ed39cd 100644 --- a/FP/src/conf/states/main.conf +++ b/FP/src/conf/states/main.conf @@ -540,6 +540,8 @@ splash: splash animation 80 x + mark + deadBody chopped: action you are in two parts, ouch! diff --git a/FP/src/ker/kernel.c b/FP/src/ker/kernel.c index 6632485..5f15197 100644 --- a/FP/src/ker/kernel.c +++ b/FP/src/ker/kernel.c @@ -60,145 +60,131 @@ int playgame(int optionflag,int level) { int flags; int timeDead; -while (1) { - /* Initialize */ - key=inputCreateKey(); - resMap=resLoad(RES_MAP|level); - map=(tMap*)resMap->pFrames; - notReset=1; - flags=0; - timeDead=0; + while (1) { + /* Initialize */ + key=inputCreateKey(); + resMap=resLoad(RES_MAP|level); + map=(tMap*)resMap->pFrames; + notReset=1; + flags=0; + timeDead=0; + + /*TODO: use a map.c function that reads this information and creates the kid*/ + kid=objectCreate(30,1,DIR_RIGHT,stateKidInLevel(level),RES_IMG_ALL_KID,1,oKid); + outputDrawMessage(24,"LEVEL %d\n",level); + + /* Game loop here */ + + /* Initialize kid and room in the map */ + mapStart(map,&kid,&roomId,level); + room=mapGetRoom(map,roomId); + + /* Level loop here */ + while (notReset) { + if (inputGetEvent(&key)) { + /* Time event */ - /*TODO: use a map.c function that reads this information and creates the kid*/ - kid=objectCreate(30,1,DIR_RIGHT,stateKidInLevel(level),RES_IMG_ALL_KID,1,oKid); - outputDrawMessage(24,"LEVEL %d\n",level); - - /* Game loop here */ - - /* Initialize kid and room in the map */ - mapStart(map,&kid,&roomId,level); - room=mapGetRoom(map,roomId); - - /* Level loop here */ - while (notReset) { - if (inputGetEvent(&key)) { - /* Time event */ - - /* Moving objects */ - /* keylogIntercept(&key); - * TODO: send to the real place where - * the key is interpreted in kid object - */ - flags=objectMove(&kid,key,&room); - mapMove(map); - /* Drawing functions */ - outputClearScreen(); /* TODO: send to drawBackground() */ - roomDrawBackground(&room); - kidDrawLives(&kid); - objectDraw(kid); - roomDrawForeground(&room); - /* if dead */ - if (flags&STATES_FLAG_X) timeDead++; - if (timeDead==20) outputDrawMessage(120,"Press Button to Continue"); - if (timeDead==160) outputDrawMessage(10,"Press Button to Continue"); - if (timeDead==180) outputDrawMessage(10,"Press Button to Continue"); - if (timeDead==200) outputDrawMessage(10,"Press Button to Continue"); - if (timeDead==210) { - resFree(resMap); - return 0; - } - outputUpdateScreen(); - } else { - /* Action event */ - switch (key.actionPerformed) { - case quit: - resFree(resMap); - return 1; - case gotoTitles: - resFree(resMap); - return 0; - case showUp: - if ((roomId=room.links[eUp])) { - room=mapGetRoom(map,roomId); - printf("Kernel/playgame: cheat: Looking up\n"); + /* Moving objects */ + /* keylogIntercept(&key); + * TODO: send to the real place where + * the key is interpreted in kid object + */ + flags=objectMove(&kid,key,&room); + mapMove(map); + /* Drawing functions */ + outputClearScreen(); /* TODO: send to drawBackground() */ + roomDrawBackground(&room); + kidDrawLives(&kid); + objectDraw(kid); + roomDrawForeground(&room); + /* if dead */ + if (flags&STATES_FLAG_X) { + timeDead++; + kidKillHim(&kid); + } + if (timeDead==20) outputDrawMessage(120,"Press Button to Continue"); + if (timeDead==160) outputDrawMessage(10,"Press Button to Continue"); + if (timeDead==180) outputDrawMessage(10,"Press Button to Continue"); + if (timeDead==200) outputDrawMessage(10,"Press Button to Continue"); + if (timeDead==210) { + resFree(resMap); + return 0; + } + outputUpdateScreen(); + } else { + /* Action event */ + switch (key.actionPerformed) { + case quit: + resFree(resMap); + return 1; + case gotoTitles: + resFree(resMap); + return 0; + case showUp: + if ((roomId=room.links[eUp])) { + room=mapGetRoom(map,roomId); + printf("Kernel/playgame: cheat: Looking up\n"); + } + break; + case showLeft: + if ((roomId=room.links[eLeft])) + room=mapGetRoom(map,roomId); + break; + case showDown: + if ((roomId=room.links[eDown])) + room=mapGetRoom(map,roomId); + break; + case showRight: + if ((roomId=room.links[eRight])) + room=mapGetRoom(map,roomId); + break; + case passLevel: + resFree(resMap); + level++; + level%=16; + notReset=0; + break; + case buttonPressed: + if (!(flags&STATES_FLAG_X)) + break; /* break if not dead */ + case reload: + notReset=0; + break; + case addLive: + kidGetLive(&kid); + break; + case addHitPoint: + kidGetHitPoint(&kid); + break; + case showVersion: + outputDrawMessage(24,"FreePrince v"FP_VERSION"\n"); + break; + case showScreens: + outputDrawMessage(24,"S%d L%d R%d A%d B%d\n", + room.id, + room.links[eLeft], + room.links[eRight], + room.links[eUp], + room.links[eDown] + ); + break; + case pause: + break; + case showMoreScreens: + outputDrawMessage(24,"S%d AL%d AR%d BL%d BR%d\n", + room.id, + room.corners[0], + room.corners[1], + room.corners[2], + room.corners[3] + ); + break; + default: + break; } - break; - case showLeft: - if ((roomId=room.links[eLeft])) - room=mapGetRoom(map,roomId); - break; - case showDown: - if ((roomId=room.links[eDown])) - room=mapGetRoom(map,roomId); - break; - case showRight: - if ((roomId=room.links[eRight])) - room=mapGetRoom(map,roomId); - break; - case passLevel: - resFree(resMap); - level++; - level%=16; -/* resMap=resLoad(RES_MAP|level); - map=(tMap*)resMap->pFrames; - mapStart(map,&kid,&roomId,level); - room=mapGetRoom(map,roomId); - outputDrawMessage(24,"Cheat: Pass to level %d\n",level);*/ - notReset=0; - break; - case buttonPressed: - if (!(flags&STATES_FLAG_X)) - break; /* break if not dead */ - case reload: - notReset=0; - break; - case addLive: - break; - case addHitPoint: - break; - case showVersion: - outputDrawMessage(24,"FreePrince v"FP_VERSION"\n"); - break; - case showScreens: - outputDrawMessage(24,"S%d L%d R%d A%d B%d\n", - room.id, - room.links[eLeft], - room.links[eRight], - room.links[eUp], - room.links[eDown] - ); - break; - case pause: - break; - case showMoreScreens: - outputDrawMessage(24,"S%d AL%d AR%d BL%d BR%d\n", - room.id, - room.corners[0], - room.corners[1], - room.corners[2], - room.corners[3] - ); - break; - default: - break; } } } -/* switch (death) { - case STATE_EXIT_CODE_SPIKED: - outputDrawMessage(1,"You are spiked! Press a key"); - break; - case STATE_EXIT_CODE_SPLASH: - outputDrawMessage(1,"Splashh! Explicit content censored!"); - break; - case STATE_EXIT_CODE_CHOMPED: - outputDrawMessage(1,"You are dead! Press a key"); - break; - } - outputUpdateScreen(); - inputPause(); - return playgame(optionflag,level); * TODO: fix this recursivity */ -} return 0; } diff --git a/FP/src/ker/kid.c b/FP/src/ker/kid.c index 6a22362..ae15f1b 100644 --- a/FP/src/ker/kid.c +++ b/FP/src/ker/kid.c @@ -55,7 +55,7 @@ void kidDrawLives(tObject *kid) { } void kidGetLive(tObject *kid) { - kid->lives++; + kid->hitPoints=++kid->lives; } void kidGetHitPoint(tObject *kid) {