Skip to content

Commit

Permalink
fixed nds version, updated topscreen (in template that I will post la…
Browse files Browse the repository at this point in the history
…ter; probably should intergrate into system)
  • Loading branch information
penguin673 committed Oct 27, 2008
1 parent 3f5ab91 commit cffe2f4
Show file tree
Hide file tree
Showing 9 changed files with 111 additions and 63 deletions.
6 changes: 0 additions & 6 deletions A1.xml.real
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,10 @@
<angle x="-35" y="-25">
<grid id="st1_esc" x="1" y="-3" z="2" prev="g4" next="st2" />
</angle>
<angle x="-15" y="-10">
<grid id="st1_esc2" x="0" y="-1" z="0" prev="g1" next="st2" />
</angle>
</escgrid>
<escgrid id="st2" x="-2.4f" y="1" z="7.15f" prev="st1" next="st1">
<angle x="-35" y="-25">
<grid id="st2_esc" x="0" y="-3" z="2" prev="st1" next="st1" />
</angle>
<angle x="-15" y="-10">
<grid id="st2_esc2" x="-1" y="-1" z="0" prev="st1" next="st1" />
</angle>
</escgrid>
</stage>
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ setup-nds:

nds:
make -C n-echo
zip -r $(NPKG) n-echo/n-echo.nds n-echo/n-echo.ds.gba n-echo/A*.xml.real n-echo/N_ECHO_README
zip -r $(NPKG) n-echo/n-echo.nds n-echo/n-echo.ds.gba n-echo/apps n-echo/N_ECHO_README

upload: package package-mac nds
$(UPLOAD) 'Linux (32) binary + xml stages - $(VERSION) (revision $(REVISION))' $(PKGPREFIX)lin32.zip
Expand Down
42 changes: 28 additions & 14 deletions echo_character.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
#define SPEED_FALL_FROM_SKY 0.15f
#else
//various character speeds
#define SPEED_STEP 0.12f
#define SPEED_STEP 0.07f
#define SPEED_RUN 0.25f
#define SPEED_FALL 0.50f
#define SPEED_LAUNCH 0.30f
Expand Down Expand Up @@ -142,6 +142,14 @@ void echo_char::start_step()
}
}

void echo_char::toggle_run()
{
if(speed == SPEED_RUN)
start_step();
else
start_run();
}

void echo_char::init(grid * g1)
{
start = grid1 = g1;
Expand Down Expand Up @@ -253,19 +261,23 @@ void echo_char::step()
vector3f pos2 = i2->pos;
if(!paused)
{
dist_traveled += speed;
dist_traveled += speed * 2; //inflate it a little
dist_traveled_cyclic += speed * 180;
if(dist_traveled_cyclic > 720)
if(dist_traveled_cyclic > 360)
{
dist_traveled -= 4;
dist_traveled_cyclic -= 720;
dist_traveled_cyclic -= 360;
}
dist = pos1.dist(pos2);
if((dist_traveled > 0.5f && dist_traveled <= 1)
|| (dist_traveled > 2.5f && dist_traveled <= 3))
if(dist_traveled > 0.5f && dist_traveled <= 1)
{
grid1per -= (1 + 1 * echo_cos(90 * dist_traveled - 22.5f)) * speed / dist; //step thru it
grid2per += (1 + 1 * echo_cos(90 * dist_traveled - 22.5f)) * speed / dist;
}
else if(dist_traveled > 2.5f && dist_traveled <= 3)
{
grid1per -= (1 + 0.75f * echo_cos(360 * dist_traveled)) * speed / dist; //step thru it
grid2per += (1 + 0.75f * echo_cos(360 * dist_traveled)) * speed / dist;
grid1per -= (1 + 1 * echo_cos(90 * dist_traveled + 67.5f)) * speed / dist; //step thru it
grid2per += (1 + 1 * echo_cos(90 * dist_traveled + 67.5f)) * speed / dist;
}
else
{
Expand Down Expand Up @@ -342,15 +354,16 @@ void echo_char::draw(float x, float y, float z)
if(main_grid)
{
gfx_translatef(0, grid2->vert_shift(main_per), 0);
joints.rshoulder_swing = -20 * echo_cos(dist_traveled_cyclic / 2);
joints.lshoulder_swing = 20 * echo_cos(dist_traveled_cyclic / 2);
joints.rarm_bend = -10 * echo_cos(dist_traveled_cyclic / 2) - 20;
joints.larm_bend = 10 * echo_cos(dist_traveled_cyclic / 2) - 20;
joints.rthigh_lift = -45 * echo_cos(dist_traveled_cyclic / 2);
joints.lthigh_lift = 45 * echo_cos(dist_traveled_cyclic / 2);
joints.rshoulder_swing = -20 * echo_cos(dist_traveled_cyclic);
joints.lshoulder_swing = 20 * echo_cos(dist_traveled_cyclic);
joints.rarm_bend = -10 * echo_cos(dist_traveled_cyclic) - 20;
joints.larm_bend = 10 * echo_cos(dist_traveled_cyclic) - 20;
joints.rthigh_lift = -45 * echo_cos(dist_traveled_cyclic);
joints.lthigh_lift = 45 * echo_cos(dist_traveled_cyclic);

#define LEG_BEND_MAX 30

//*
if(dist_traveled > 1 && dist_traveled <= 1.5f)
joints.rleg_bend = LEG_BEND_MAX * echo_cos(dist_traveled * 180 + 180);
else if(dist_traveled > 3.0f || dist_traveled <= 1)
Expand All @@ -363,6 +376,7 @@ void echo_char::draw(float x, float y, float z)
joints.lleg_bend = LEG_BEND_MAX * echo_sin(dist_traveled * 45 - 90);
else
joints.lleg_bend = 0;
// */
}
if(grid1 && grid2)
{
Expand Down
2 changes: 2 additions & 0 deletions echo_character.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ class echo_char
//change speed to walking if we can
void start_step();

void toggle_run();

//pause or unpause
void toggle_pause();
//is this character paused?
Expand Down
4 changes: 4 additions & 0 deletions echo_ns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,10 @@ namespace echo_ns
{
main_char->start_step();
}
void toggle_run()
{
main_char->toggle_run();
}

void add_static_grid(static_grid* sg)
{
Expand Down
1 change: 1 addition & 0 deletions echo_ns.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ namespace echo_ns
void start_run();
//change speed to walking if we can
void start_step();
void toggle_run();

void add_static_grid(static_grid* sg);
void remove_static_grid(static_grid* sg);
Expand Down
15 changes: 10 additions & 5 deletions echo_prefs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
#include <echo_error.h>
#include <echo_debug.h>
#include <echo_platform.h>
#ifdef ECHO_NDS
#include <tinyxml.h>
#else
#include <tinyxml/tinyxml.h>
#endif

#ifdef ECHO_NDS
#ifndef __ECHO_NDS_PREFS__
Expand All @@ -36,11 +41,11 @@
*document = new TiXmlDocument(PREFS_FILE);
return((*document)->LoadFile() ? WIN : FAIL);
}
int get_hand(TiXmlDocument* document, enum HAND* handedness)
int get_hand(TiXmlDocument* document, HAND* handedness)
{
if(document)
{
TiXmlElement* root = document->Root();
TiXmlElement* root = document->RootElement();
if(root)
{
const char* hand_str = root->Attribute(HAND_ATTR_NAME);
Expand All @@ -61,11 +66,11 @@
}
return(FAIL);
}
int set_hand(TiXmlDocument* document, enum HAND handedness)
int set_hand(TiXmlDocument* document, HAND handedness)
{
if(document)
{
TiXmlElement* root = document->Root();
TiXmlElement* root = document->RootElement();
if(root)
{
root->SetAttribute(HAND_ATTR_NAME, handedness == LEFT_HAND ? HAND_LEFT_VALUE : HAND_RIGHT_VALUE);
Expand All @@ -74,7 +79,7 @@
}
return(FAIL);
}
int close_prefs(TiXmlDocument* doocument)
int close_prefs(TiXmlDocument* document)
{
if(document->SaveFile(PREFS_FILE) == FALSE)
return(FAIL);
Expand Down
11 changes: 8 additions & 3 deletions echo_prefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,18 @@
*/

#include <echo_platform.h>
#ifdef ECHO_NDS
#include <tinyxml.h>
#else
#include <tinyxml/tinyxml.h>
#endif

#ifdef ECHO_NDS
enum { LEFT_HAND, RIGHT_HAND } HAND;
enum HAND { LEFT_HAND, RIGHT_HAND };

int open_prefs(TiXmlDocument** document);
int get_hand(TiXmlDocument* document, enum HAND* handedness);
int set_hand(TiXmlDocument* document, enum HAND handedness);
int get_hand(TiXmlDocument* document, HAND* handedness);
int set_hand(TiXmlDocument* document, HAND handedness);
int close_prefs(TiXmlDocument* document);
#endif

91 changes: 57 additions & 34 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
#define _STDCALL_SUPPORTED

#ifdef ECHO_NDS
#include <tinyxml.h>

#include <nds.h>
#include <nds/arm9/video.h>
#include <fat.h>
Expand Down Expand Up @@ -86,6 +88,7 @@
#define START_BG DISPLAY_BG0_ACTIVE
#define DEBUG_BG DISPLAY_BG3_ACTIVE
#else
#include <tinyxml/tinyxml.h>
#ifdef ECHO_PC
#ifdef ECHO_OSX //OS X
#include <OpenGL/gl.h>
Expand Down Expand Up @@ -148,6 +151,8 @@
static const uint32 basic_modes = MODE_0_2D | DISPLAY_BG_EXT_PALETTE;
//the temp address of the counter (holds number of goals)
static char counter[32];
//what are the directional buttons? defaults to right-scheme
static int left_key = KEY_LEFT, right_key = KEY_RIGHT, up_key = KEY_UP, down_key = KEY_DOWN, b_key = KEY_B;
#else
#ifdef ECHO_PC
//ID of the window
Expand Down Expand Up @@ -190,10 +195,6 @@ static vector3f real_angle(0, 0, 0);
//the current directory
static echo_files* files = NULL;

#ifdef ECHO_NDS
static int left, right, up, down;
#endif

//--METHODS

#ifdef ECHO_NDS
Expand Down Expand Up @@ -221,6 +222,9 @@ static echo_files* files = NULL;
static void update_num_goals();
//update console2 with status
static void update_char_state();

//tries to refresh the handedness
static void refresh_hand(TiXmlDocument* doc);
#elif ECHO_PC
//mouse event, calls pressed or handles releases.
static void mouse(int button, int state, int x, int y);
Expand Down Expand Up @@ -263,35 +267,22 @@ int main(int argc, char **argv)
#ifdef ECHO_NDS
//initialize the file system
fatInitDefault();
//get the files
files = get_files("/apps/n-echo");
//initialize the screens
init(argc, argv, 255, 191);

ECHO_PRINT("trying to load prefs...\n");
TiXmlDocument* doc = NULL;
if(open_pref(&doc) == WIN)
if(open_prefs(&doc) == WIN)
{
HAND* hand = NULL;
if(get_hand(doc, hand) == WIN)
{
if(*hand == RIGHT_HAND)
{
left = KEY_LEFT;
right = KEY_RIGHT;
up = KEY_UP;
down = KEY_DOWN;
}
else
{
left = KEY_Y;
right = KEY_A;
up = KEY_X;
down = KEY_B;
}
}
close_pref(doc);
ECHO_PRINT("loaded prefs...\n");
refresh_hand(doc);
close_prefs(doc);
}
else
ECHO_PRINT("couldn't load prefs!\n");

//get the files
files = get_files("/app/nds");
//initialize the screens
init(argc, argv, 255, 191);
//load the menu
load(NULL);
//infinite loop
Expand Down Expand Up @@ -386,6 +377,36 @@ int main(int argc, char **argv)
return(1);
}

#ifdef ECHO_NDS
void refresh_hand(TiXmlDocument* doc)
{
HAND* hand = NULL;
if(get_hand(doc, hand) == WIN)
{
if(*hand == RIGHT_HAND)
{
ECHO_PRINT("right handed\n");
left_key = KEY_LEFT;
right_key = KEY_RIGHT;
up_key = KEY_UP;
down_key = KEY_DOWN;
b_key = KEY_B;
}
else
{
ECHO_PRINT("left handed\n");
left_key = KEY_Y;
right_key = KEY_A;
up_key = KEY_X;
down_key = KEY_B;
b_key = KEY_DOWN;
}
}
else
ECHO_PRINT("couldn't get handedness!");
}
#endif

static void load(const char* fname)
{
//load stage
Expand Down Expand Up @@ -1024,9 +1045,9 @@ static void display()
file_start = 0;
}
}
if(((key & KEY_DOWN) || (key & KEY_B)) && file_index < files->num_files - 1)
if((key & down_key) && file_index < files->num_files - 1)
file_index++;
if(((key & KEY_UP) || (key & KEY_X)) && file_index > 0)
if((key & up_key) && file_index > 0)
file_index--;
file_start = file_index - 21;
if(file_start < 0)
Expand All @@ -1036,10 +1057,10 @@ static void display()
{
if((key & KEY_L) || (key & KEY_R))
start_or_pause();
if(key & right) right();
if(key & left) left();
if(key & down) down();
if(key & up) up();
if(key & right_key) right();
if(key & left_key) left();
if(key & down_key) down();
if(key & up_key) up();
}
if(key & KEY_START)
{
Expand Down Expand Up @@ -1141,6 +1162,8 @@ static void display()
echo_ns::start_run();
else if(key == 'w' || key == 'W')
echo_ns::start_step();
else if(key == 't' || key == 'T')
echo_ns::toggle_run();
else if(key == 's' || key == 'S')
ECHO_PRINT("speed: %f\n", echo_ns::get_speed());
else if(key == 'a' || key == 'A')
Expand Down

0 comments on commit cffe2f4

Please sign in to comment.