Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > b10e5b553854549ead5da559ca1918dc > files > 4

auriferous-1.0.1-10.fc13.src.rpm

diff -ur auriferous-1.0.1.orig/auriferous/auriferous.cpp auriferous-1.0.1/auriferous/auriferous.cpp
--- auriferous-1.0.1.orig/auriferous/auriferous.cpp	2002-05-30 14:42:29.000000000 +0200
+++ auriferous-1.0.1/auriferous/auriferous.cpp	2006-07-20 22:48:56.000000000 +0200
@@ -53,10 +53,14 @@
 	//write the config to the file
 	Config::deinit();
 
+	// mouse must be hidden before calling CL_SetupDisplay::deinit(),
+	// otherwise ClanLib segfaults
+	CL_MouseCursor::hide();
+
 	//deinit Clanlib!
 	CL_SetupJPEG::deinit();
 	CL_SetupPNG::deinit();
-	//CL_SetupDisplay::deinit(); //makes a "Segmentaion fault" on exit (perhaps the big alpha pics)
+	CL_SetupDisplay::deinit();
 	CL_SetupSound::deinit();
 	//CL_SetupGL::deinit();
 	CL_SetupCore::deinit();
diff -ur auriferous-1.0.1.orig/auriferous/config.cpp auriferous-1.0.1/auriferous/config.cpp
--- auriferous-1.0.1.orig/auriferous/config.cpp	2002-05-31 16:21:36.000000000 +0200
+++ auriferous-1.0.1/auriferous/config.cpp	2006-07-20 16:55:53.000000000 +0200
@@ -224,6 +224,7 @@
 }
 void Config::reset()
 {
+	const int k[18]={1,4,23,19,17,5,26,24,3,85,87,89,86,88,90,82,83,84};
 	music=true;
 	music_vol=2;
 	intro=true;
@@ -231,8 +232,7 @@
 	full_screen=true;
 	speed=3;
 	fps=false;
-	int k[18]={1,4,23,19,17,5,26,24,3,85,87,89,86,88,90,82,83,84};
-	keys=k;
+	memcpy(keys, k, sizeof(int) * 18);
 }
 void Config::read_maxl()
 {
diff -ur auriferous-1.0.1.orig/auriferous/game.cpp auriferous-1.0.1/auriferous/game.cpp
--- auriferous-1.0.1.orig/auriferous/game.cpp	2002-05-30 15:54:23.000000000 +0200
+++ auriferous-1.0.1/auriferous/game.cpp	2006-07-20 20:47:44.000000000 +0200
@@ -37,9 +37,11 @@
 	CL_MouseCursor::hide();
 	yes=new Button(632, 400, app->menu, "Yes");
 	no=new Button(380, 368, app->menu, "No (continue)");
+	timer=new Timer;
 }
 Game::~Game()
 {
+	delete timer;
 }
 void Game::run(bool players)
 {
@@ -49,6 +51,7 @@
 
 	while(!must_end)
 	{
+		timer->reset();
 		CL_Display::clear_display();
 		act_game();
 		show_game();
@@ -56,6 +59,8 @@
 		draw_hud();
 		CL_Display::flip_display();			
 		CL_System::keep_alive();
+		while (timer->time_elapsed() < (1.0f/60.0f))
+			CL_System::sleep(1);
 	}
 
 	yes->set_Delete_Me();
diff -ur auriferous-1.0.1.orig/auriferous/game.h auriferous-1.0.1/auriferous/game.h
--- auriferous-1.0.1.orig/auriferous/game.h	2002-05-20 18:58:14.000000000 +0200
+++ auriferous-1.0.1/auriferous/game.h	2006-07-20 20:48:13.000000000 +0200
@@ -28,6 +28,7 @@
 class Player;
 class Button;
 class Map_Sample;
+class Timer;
 
 class Game
 {
@@ -54,6 +55,9 @@
 
 	bool must_end, showmen, t;
 	Auriferous* app;
+	
+	/* For framerate throttling */
+	Timer *timer;
 };
 
 #endif
diff -ur auriferous-1.0.1.orig/auriferous/global_types.h auriferous-1.0.1/auriferous/global_types.h
--- auriferous-1.0.1.orig/auriferous/global_types.h	2002-05-30 16:06:01.000000000 +0200
+++ auriferous-1.0.1/auriferous/global_types.h	2006-07-20 15:15:37.000000000 +0200
@@ -139,4 +139,5 @@
 float distance(int x, int y, int _x, int _y);
 const int frame_offset=32;
 
+using namespace std;
 #endif
diff -ur auriferous-1.0.1.orig/auriferous/mainscreen.cpp auriferous-1.0.1/auriferous/mainscreen.cpp
--- auriferous-1.0.1.orig/auriferous/mainscreen.cpp	2002-05-30 15:54:24.000000000 +0200
+++ auriferous-1.0.1/auriferous/mainscreen.cpp	2006-07-21 23:33:12.000000000 +0200
@@ -72,21 +72,24 @@
 		submenu->new_sub(TWOPLAYER);
 		else if(config->is_pressed()==true)
 		submenu->new_sub(CONFIG);
-		else if(help->is_pressed()==true)
+		else if(help->is_pressed()==true && scr_t!=1)
 		{
 			scr_t=1;
 			scroll_y=0;
+			timer->reset();
 		}
-		else if(story->is_pressed()==true)
+		else if(story->is_pressed()==true && scr_t!=2)
 		{
 			scr_t=2;
 			scroll_y=0;
+			timer->reset();
 		}
-		else if(credits->is_pressed()==true)
+		else if(credits->is_pressed()==true && scr_t!=3)
 		{
 			scr_t=3;
 			scroll_y=0;
 			scroll_c=0;
+			timer->reset();
 		}
 	}
 	else
@@ -147,9 +150,6 @@
 {
 	switch(scr_t)
 	{
-	case 0:
-		intro();
-	break;
 	case 1:
 		Help();
 	break;
@@ -163,37 +164,53 @@
 	break;
 	}
 
-	if(scr_t==0 && quit->is_activated()==true)
+	if(scr_t==0)
+	{
+	bool any_activated = false;
+
+	if(quit->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 205, "Thank's for\n using my game!\n (:");
+		any_activated = true;
 	}
-	else if(scr_t==0 && editor->is_activated()==true)
+	else if(editor->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 235, "A editor for\n custom levels");
+		any_activated = true;
 	}
-	else if(scr_t==0 && game->is_activated()==true)
+	else if(game->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 235, "Start a new\n singleplayer game");
+		any_activated = true;
 	}
-	else if(scr_t==0 && game2->is_activated()==true)
+	else if(game2->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 235, "Start a new\n multiplayer game");
+		any_activated = true;
 	}
-	else if(scr_t==0 && config->is_activated()==true)
+	else if(config->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 235, "Settings for\n Auriferous");
+		any_activated = true;
 	}
-	else if(scr_t==0 && help->is_activated()==true)
+	else if(help->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 265, "Show the help");
+		any_activated = true;
 	}
-	else if(scr_t==0 && story->is_activated()==true)
+	else if(story->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 205, "Tells you the\n story behind\n Auriferous");
+		any_activated = true;
 	}
-	else if(scr_t==0 && credits->is_activated()==true)
+	else if(credits->is_activated()==true)
 	{
 		Resources::Cgfont()->print_center(512, 265, "The Credits");
+		any_activated = true;
+	}
+
+	if (!any_activated)
+		intro();
 	}
 
 	if(CL_Keyboard::get_keycode(CL_KEY_ESCAPE)==true)
@@ -291,7 +308,7 @@
 	Resources::Gfont()->print_left(230, 415, "(click to continue)");
 
 
-	if(CL_Mouse::left_pressed()==true && timer->time_elapsed()>0.8f)
+	if(CL_Mouse::left_pressed()==true && timer->time_elapsed()>0.3f)
 	{
 		Resources::Clicknormal()->play();
 		scroll_y++;
@@ -316,7 +333,7 @@
 	Resources::Rfontg()->print_center(512, 170+scroll_c, "The Credits:");
 	Resources::Gfont()->print_center(512, 200+scroll_c, "Code and Graphics by funthing \n\nThanks to:\n-The Clanlib Team (#best Game SDK!#)\n-The Authors of the  Music: \n and addicted contributors\n in advance :)");
 
-	if(CL_Mouse::left_pressed()==true && timer->time_elapsed()>0.8f)
+	if(CL_Mouse::left_pressed()==true && timer->time_elapsed()>0.3f)
 	{
 		Resources::Clicknormal()->play();
 		scr_t=0;
@@ -347,7 +364,7 @@
 	}
 
 	Resources::Gfont()->print_left(230, 415, "(click to continue)");
-	if(CL_Mouse::left_pressed()==true && timer->time_elapsed()>0.8f)
+	if(CL_Mouse::left_pressed()==true && timer->time_elapsed()>0.3f)
 	{
 		Resources::Clicknormal()->play();
 		scroll_y++;
diff -ur auriferous-1.0.1.orig/auriferous/map.cpp auriferous-1.0.1/auriferous/map.cpp
--- auriferous-1.0.1.orig/auriferous/map.cpp	2002-05-30 00:55:39.000000000 +0200
+++ auriferous-1.0.1/auriferous/map.cpp	2006-07-20 20:18:10.000000000 +0200
@@ -44,16 +44,18 @@
 }
 void Map::act()
 {
-	list<Maptile*>::iterator it;
-	for(it = tiles.begin(); it!=tiles.end(); ++it)
+  list<Maptile*>::iterator it = tiles.begin();
+  while (it!=tiles.end())
   {
-    Maptile* m=*it;
-
-  	if(!m->delete_me())
-  	m->act();
-  	else
+    /* erase invalidates the iterator, so make a copy to operate on
+       and increment it beforehand */
+    list<Maptile*>::iterator  m=it;
+    it++;
+    if(!(*m)->delete_me())
+      (*m)->act();
+    else
     {
-  	  tiles.erase(it);
+      tiles.erase(m);
       tiles.sort();
     }
   }
diff -ur auriferous-1.0.1.orig/auriferous/map_sample.cpp auriferous-1.0.1/auriferous/map_sample.cpp
--- auriferous-1.0.1.orig/auriferous/map_sample.cpp	2002-05-30 15:31:01.000000000 +0200
+++ auriferous-1.0.1/auriferous/map_sample.cpp	2006-07-20 20:56:07.000000000 +0200
@@ -62,6 +62,8 @@
   n=false;
 	if(game->get_t()==true)
 	p2=new Player(0,0,1, this);
+	else
+	p2=NULL;
 
   restart=false;
 
@@ -193,19 +195,20 @@
   {
     read_next(id);
     restart=true;
-	}
+  }
 
-	list<Gameobject*>::iterator it;
-	for(it=objects.begin(); it!=objects.end(); ++it)
-	{
-    Gameobject *m=*it;
-	  if(!m->delete_me())
-	  {
-		  m->act();
-	  }
-	  else
-	  {
-      objects.erase(it);
+  list<Gameobject*>::iterator it=objects.begin();
+  while (it!=objects.end())
+  {
+    /* erase invalidates the iterator, so make a copy to operate on
+       and increment it beforehand */
+    list<Gameobject*>::iterator g=it;
+    it++;
+    if(!(*g)->delete_me())
+      (*g)->act();
+    else
+    {
+      objects.erase(g);
       objects.sort();
     }
    }
@@ -270,7 +270,10 @@
 	while(!in.eof())
 	{
 		last=in.get();
-		a=&last;
+		char buf[2];
+		buf[0] = last;
+		buf[1] = 0;
+		a=buf;
 
 		if(!in.eof())
 		{
diff -ur auriferous-1.0.1.orig/auriferous/menu.cpp auriferous-1.0.1/auriferous/menu.cpp
--- auriferous-1.0.1.orig/auriferous/menu.cpp	2002-05-29 19:50:08.000000000 +0200
+++ auriferous-1.0.1/auriferous/menu.cpp	2006-07-20 20:00:46.000000000 +0200
@@ -54,13 +54,16 @@
 }
 void Menu::actshowgui()
 {
-  for(it = guiobjs.begin(); it!=guiobjs.end(); ++it)
+  it = guiobjs.begin();
+  while (it!=guiobjs.end())
   {
-    Gui *g=*it;
-
-	  if(g->Delete_Me()==true)
+    /* erase invalidates the iterator, so make a copy to operate on
+       and increment it beforehand */
+    list<Gui*>::iterator g=it;
+    it++;
+    if((*g)->Delete_Me()==true)
     {
-      guiobjs.erase(it);
+      guiobjs.erase(g);
       guiobjs.sort();
     }
   }
diff -ur auriferous-1.0.1.orig/auriferous/monk_ai.cpp auriferous-1.0.1/auriferous/monk_ai.cpp
--- auriferous-1.0.1.orig/auriferous/monk_ai.cpp	2002-05-31 16:32:11.000000000 +0200
+++ auriferous-1.0.1/auriferous/monk_ai.cpp	2006-07-20 21:08:03.000000000 +0200
@@ -53,7 +53,7 @@
 	else
 	{
 		//who's the next sacrifice? :)
-		if(sample->map->game->get_t())
+		if(sample->p2) /* 2 player mode ? */
 		{
 			if((sample->p2->is_hunted()==false && sample->p1->is_hunted()==true) || sample->p1->is_hunted() && distance(monk->get_x(), monk->get_y(), sample->p1->get_x(), sample->p1->get_y()) <= distance(monk->get_x(), monk->get_y(), sample->p2->get_x(), sample->p2->get_y()))
 			{
@@ -86,7 +86,7 @@
 		}
 		else
 		{
-     	if(sample->p1->is_hunted())
+			if(sample->p1->is_hunted())
 			{
 				if(monk->move_up() && sample->p1->get_y()<monk->get_y())
 				up=true;
@@ -140,7 +140,7 @@
 			right=true;
 			left=up=down=false;
 		}
-		else
+		if (hp2)
 		if(monk->move_hleft() && monk->get_x() > sample->p2->get_x())
 		{
 			left=true;
diff -ur auriferous-1.0.1.orig/auriferous/resources.scr auriferous-1.0.1/auriferous/resources.scr
--- auriferous-1.0.1.orig/auriferous/resources.scr	2002-05-29 23:44:33.000000000 +0200
+++ auriferous-1.0.1/auriferous/resources.scr	2006-07-20 22:13:03.000000000 +0200
@@ -31,15 +31,15 @@
 
 	explosion = pics/game/explosion.png (type=surface, x=0, y=0, width=128, height=128, array=8x1);
 
-	atile = pics/game/aqua/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x11);	
+	atile = pics/game/aqua/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x10);	
 	abackground = pics/game/aqua/background.png (type=surface);
-	itile = pics/game/ice/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x11);	
+	itile = pics/game/ice/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x10);	
 	ibackground = pics/game/ice/background.png (type=surface);
-	ltile = pics/game/lava/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x11);	
+	ltile = pics/game/lava/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x10);	
 	lbackground = pics/game/lava/background.png (type=surface);
-	jtile = pics/game/jungle/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x11);	
+	jtile = pics/game/jungle/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x10);	
 	jbackground = pics/game/jungle/background.png (type=surface);
-	ttile = pics/game/tech/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x11);	
+	ttile = pics/game/tech/tile.png (type=surface, x=0, y=0, width=32, height=32, array=8x10);	
 	tbackground = pics/game/tech/background.png (type=surface);
 }
 section music
diff -ur auriferous-1.0.1.orig/auriferous/submenu.cpp auriferous-1.0.1/auriferous/submenu.cpp
--- auriferous-1.0.1.orig/auriferous/submenu.cpp	2002-05-30 00:58:26.000000000 +0200
+++ auriferous-1.0.1/auriferous/submenu.cpp	2006-07-20 16:58:18.000000000 +0200
@@ -86,9 +86,11 @@
 
 		wait=false;
 		key=0;
-		i_keys=Config::keys;
 		for(int i=0; i<18; i++)
-		s_keys[i]=key_name(i_keys[i]);
+		{
+			i_keys[i]=Config::keys[i];
+			s_keys[i]=key_name(i_keys[i]);
+		}
 		key_buffer->clear();
 	}
 	else
@@ -249,7 +251,7 @@
 			Config::set_skill(skill->get_val());
 			Config::set_speed(speed->get_val());
 			Config::set_fps(fps->is_checked());
-			Config::keys=i_keys;
+			memcpy(Config::keys, i_keys, sizeof(int) * 18);
 			clean();
 			activ=false;
 			app->menu->disable_ms(false);
diff -ur auriferous-1.0.1.orig/auriferous/submenu.h auriferous-1.0.1/auriferous/submenu.h
--- auriferous-1.0.1.orig/auriferous/submenu.h	2002-05-29 21:02:18.000000000 +0200
+++ auriferous-1.0.1/auriferous/submenu.h	2006-07-20 16:56:29.000000000 +0200
@@ -42,7 +42,7 @@
 	void act();
 	void clean();
 	void wait_key();
-	CL_String Submenu::key_name(int k);
+	CL_String key_name(int k);
 
 private:
 
--- auriferous-1.0.1/auriferous/editor.cpp~	2002-05-30 16:36:43.000000000 +0200
+++ auriferous-1.0.1/auriferous/editor.cpp	2009-11-29 21:15:28.000000000 +0100
@@ -562,7 +562,10 @@ void Editor::load_map()
 	while(!in.eof())
 	{
 		last=in.get();
-		a=&last;
+		char buf[2];
+		buf[0]=last;
+		buf[1]=0;
+		a=buf;
 
 		if(!in.eof())
 		{
--- auriferous-1.0.1/auriferous/player.cpp	2002-05-30 18:38:35.000000000 +0200
+++ auriferous-1.0.1.new/auriferous/player.cpp	2009-11-30 23:52:58.000000000 +0100
@@ -344,7 +346,8 @@
 			if(sample->map->get_maptile(map_x(16), map_y(16))->get_type()==LADDER || sample->map->get_maptile(map_x(16), map_y(16)+32)->get_type()==LADDER)
 			y=sample->map->get_maptile(map_x(16), map_y(16))->get_y();
 		}
-		else if(dir!=STOPPED && controller->is_up() && (sample->map->get_maptile(map_x(16), map_y()+32)->get_type()==LADDER || sample->map->get_maptile(map_x(16), map_y())->get_type()==LADDER) && !sample->map->get_maptile(map_x(16), map_y())->is_blocking())
+		else if(dir!=STOPPED && controller->is_up() && (sample->map->get_maptile(map_x(16), map_y()+32)->get_type()==LADDER || sample->map->get_maptile(map_x(16), map_y())->get_type()==LADDER) && !sample->map->get_maptile(map_x(16), map_y())->is_blocking() &&
+		        (sample->map->get_maptile(map_x(16), map_y(-speed*timer->time_elapsed())+32)->get_type()==LADDER || sample->map->get_maptile(map_x(16), map_y(-speed*timer->time_elapsed()))->get_type()==LADDER))
 		{
 			x=sample->map->get_maptile(map_x(16), map_y(16))->get_x();
 			sprite->set_new(0.2f, 22, 27);