You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(136) |
Dec
(218) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(214) |
Feb
(208) |
Mar
(186) |
Apr
(15) |
May
(3) |
Jun
(35) |
Jul
(6) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(58) |
Aug
(123) |
Sep
(31) |
Oct
(9) |
Nov
|
Dec
(1) |
2006 |
Jan
(25) |
Feb
(10) |
Mar
(25) |
Apr
(61) |
May
|
Jun
(78) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
(12) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(10) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Paul F. <you...@us...> - 2004-06-17 20:44:41
|
Update of /cvsroot/timewarp/include/MASkinG In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21585/include/MASkinG Modified Files: bitmap.h button.h checkbox.h clearscreen.h defines.h editbox.h fileselect.h fps.h hypertext.h image.h label.h listbox.h radiobutton.h scrollbox.h textarea.h timer.h wallpaper.h Log Message: updating Masking library to version 0.76 (2004.04.20). Had to fix some namespace conflicts with other classes. Index: clearscreen.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/clearscreen.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** clearscreen.h 6 Apr 2004 20:19:36 -0000 1.1 --- clearscreen.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_CLEARSCREEN_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_CLEARSCREEN_H Index: hypertext.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/hypertext.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** hypertext.h 6 Apr 2004 20:19:36 -0000 1.1 --- hypertext.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_HYPERTEXT_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_HYPERTEXT_H Index: listbox.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/listbox.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** listbox.h 6 Apr 2004 20:19:36 -0000 1.1 --- listbox.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 150,161 **** bool MsgWantfocus(); /** - Plays a sample to indicate the list got input focus. - */ - void MsgGotfocus(); - /** - Plays a sample to indicate the list lost input focus. - */ - void MsgLostfocus(); - /** Handles keyboard input. The list can be navigated with the cursor keys, home, end, page up and page down. In multiselect mode items can be --- 150,153 ---- *************** *** 310,314 **** */ void UpdateSize(); - void MsgGotfocus(); public: --- 302,305 ---- Index: label.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/label.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** label.h 6 Apr 2004 20:19:36 -0000 1.1 --- label.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_LABEL_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_LABEL_H Index: timer.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/timer.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** timer.h 6 Apr 2004 20:19:36 -0000 1.1 --- timer.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 9,17 **** #define MASKING_TIMER_H - #ifdef ALLEGRO_MSVC - #pragma warning (disable: 4786) - #pragma warning (disable: 4788) - #endif - namespace MAS { /** --- 9,12 ---- Index: scrollbox.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/scrollbox.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** scrollbox.h 6 Apr 2004 20:19:36 -0000 1.1 --- scrollbox.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 26,30 **** public: ! ScrollBoxHelper(ScrollBox *p); virtual void Draw(Bitmap &canvas); }; --- 26,31 ---- public: ! ScrollBoxHelper(); ! virtual void SetScrollBox(ScrollBox *p); virtual void Draw(Bitmap &canvas); }; Index: editbox.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/editbox.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** editbox.h 6 Apr 2004 20:19:36 -0000 1.1 --- editbox.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_EDITBOX_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_EDITBOX_H *************** *** 104,115 **** */ bool MsgWantfocus(); - /** - These play mathich rollover sounds and redraw the widget. - */ - void MsgGotfocus(); - /** - See MsgGotfocus() - */ - void MsgLostfocus(); public: --- 104,107 ---- Index: radiobutton.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/radiobutton.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** radiobutton.h 6 Apr 2004 20:19:36 -0000 1.1 --- radiobutton.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_RADIOBUTTON_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_RADIOBUTTON_H Index: textarea.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/textarea.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** textarea.h 6 Apr 2004 20:19:36 -0000 1.1 --- textarea.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,3 **** ! // ********************************************************** // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // --- 1,3 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // *************** *** 5,23 **** // http://sourceforge.net/projects/masking // // TextArea written by Martijn "amarillion" van Iersel // ! // ********************************************************** #ifndef TEXTAREA_H #define TEXTAREA_H - - #ifdef ALLEGRO_MSVC - #pragma warning (disable: 4786) - #pragma warning (disable: 4788) - #endif - #include "scrollbox.h" #include <vector> #include <string> - namespace MAS { /** --- 5,16 ---- // http://sourceforge.net/projects/masking // // TextArea written by Martijn "amarillion" van Iersel // ! // ************************************************************************** // #ifndef TEXTAREA_H #define TEXTAREA_H #include "scrollbox.h" #include <vector> #include <string> namespace MAS { /** Index: checkbox.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/checkbox.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** checkbox.h 6 Apr 2004 20:19:36 -0000 1.1 --- checkbox.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_CHECKBOX_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_CHECKBOX_H Index: defines.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/defines.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** defines.h 6 Apr 2004 20:19:36 -0000 1.1 --- defines.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 9,14 **** #define MASKING_DEFINES_H #define MAXINT 32768 ! /** sent whenever a timer has ticked --- 9,15 ---- #define MASKING_DEFINES_H + #ifndef MAXINT//////////////////////// #define MAXINT 32768 ! #endif///////////////////////// /** sent whenever a timer has ticked Index: wallpaper.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/wallpaper.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** wallpaper.h 6 Apr 2004 20:19:36 -0000 1.1 --- wallpaper.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_WALLPAPER_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_WALLPAPER_H Index: button.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/button.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** button.h 6 Apr 2004 20:19:36 -0000 1.1 --- button.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_BUTTON_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_BUTTON_H *************** *** 117,120 **** --- 117,124 ---- */ void Setup(int x, int y, int w, int h, int key, int flags, const char *text); + /** + Like Button::Setup() with the exception that the dimentions are nromalized + */ + void SetupNormalized(int x, int y, int w, int h, int key, int flags, const char *text); }; } Index: fileselect.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/fileselect.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** fileselect.h 6 Apr 2004 20:19:36 -0000 1.1 --- fileselect.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 11,19 **** #include "../MASkinG.h" - #ifdef ALLEGRO_MSVC - #pragma warning (disable: 4786) - #pragma warning (disable: 4788) - #endif - namespace MAS { /** --- 11,14 ---- Index: image.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/image.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** image.h 6 Apr 2004 20:19:36 -0000 1.1 --- image.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_IMAGE_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_IMAGE_H Index: fps.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/fps.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** fps.h 6 Apr 2004 20:19:36 -0000 1.1 --- fps.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 1,8 **** ! //////////////////////////////////////////////////////////////////////////////// // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! //////////////////////////////////////////////////////////////////////////////// #ifndef MASKING_FPS_H --- 1,8 ---- ! // ************************************************************************** // // MASkinG - Miran Amon's Skinnable GUI Library for Allegro // // Copyright (c) 2002-2003 Miran Amon (mir...@us...) // // Project websites: http://ferisrv5.uni-mb.si/~ma0747 // // http://sourceforge.net/projects/masking // ! // ************************************************************************** // #ifndef MASKING_FPS_H Index: bitmap.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG/bitmap.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** bitmap.h 6 Apr 2004 20:19:36 -0000 1.1 --- bitmap.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 99,103 **** --- 99,107 ---- bool IsVideo() const { return is_video_bitmap(data)?true:false; } void SetClip(const Rect &r) { SetClip(r.x(), r.y(), r.x2(), r.y2()); } + #if (ALLEGRO_VERSION >= 4 && ALLEGRO_SUB_VERSION >= 1 && ALLEGRO_WIP_VERSION >= 13) + void SetClip(int x1, int y1, int x2, int y2) { set_clip_rect(data, x1,y1,x2,y2); } + #else void SetClip(int x1, int y1, int x2, int y2) { set_clip(data, x1,y1,x2,y2); } + #endif Rect GetClip() const { return Rect(data->cl, data->ct, data->cr - data->cl, data->cb - data->ct); } void Show() const { show_video_bitmap(data); } *************** *** 116,120 **** void Ellipse(const Point &p, const Size &s, const Color &c) { ellipse(data, p.x(), p.y(), s.w(), s.h(), c); } void Ellipsefill(const Point &p, const Size &s, const Color &c) { ellipsefill(data, p.x(), p.y(), s.w(), s.h(), c); } ! void Arc(const Point &p, fixed a1, fixed a2, int r, const Color &c) { arc(data, p.x(), p.y(), a1, a2, r, c); } void Spline(const int points[8], const Color &c) { spline(data, points, c); } void Floodfill(const Point &p, const Color &c) { floodfill(data, p.x(), p.y(), c); } --- 120,124 ---- void Ellipse(const Point &p, const Size &s, const Color &c) { ellipse(data, p.x(), p.y(), s.w(), s.h(), c); } void Ellipsefill(const Point &p, const Size &s, const Color &c) { ellipsefill(data, p.x(), p.y(), s.w(), s.h(), c); } ! void Arc(const Point &p, long a1, long a2, int r, const Color &c) { arc(data, p.x(), p.y(), a1, a2, r, c); } void Spline(const int points[8], const Color &c) { spline(data, points, c); } void Floodfill(const Point &p, const Color &c) { floodfill(data, p.x(), p.y(), c); } *************** *** 132,136 **** void Ellipse(int x, int y, int rx, int ry, int c) { ellipse(data, x, y, rx, ry, c); } void Ellipsefill(int x, int y, int rx, int ry, int c) { ellipsefill(data, x, y, rx, ry, c); } ! void Arc(int x, int y, fixed a1, fixed a2, int r, int c) { arc(data, x, y, a1, a2, r, c); } void Floodfill(int x, int y, int c) { floodfill(data, x, y, c); } --- 136,140 ---- void Ellipse(int x, int y, int rx, int ry, int c) { ellipse(data, x, y, rx, ry, c); } void Ellipsefill(int x, int y, int rx, int ry, int c) { ellipsefill(data, x, y, rx, ry, c); } ! void Arc(int x, int y, long a1, long a2, int r, int c) { arc(data, x, y, a1, a2, r, c); } void Floodfill(int x, int y, int c) { floodfill(data, x, y, c); } *************** *** 156,167 **** void DrawLitSprite(const Bitmap &sprite, const Point &p, const Color &c) { draw_lit_sprite(data, sprite.data, p.x(), p.y(), c); } void DrawGouraoudSprite(const Bitmap &sprite, const Point &p, const Color &c1, const Color &c2, const Color &c3, const Color &c4) { draw_gouraud_sprite(data, sprite.data, p.x(), p.y(), c1,c2,c3,c4); } ! void RotateSprite(const Bitmap &sprite, const Point &p, fixed angle) { rotate_sprite(data, sprite.data, p.x(), p.y(), angle); } ! void RotateSpriteVFlip(const Bitmap &sprite, const Point &p, fixed angle) { rotate_sprite_v_flip(data, sprite.data, p.x(), p.y(), angle); } ! void RotateScaledSprite(const Bitmap &sprite, const Point &p, fixed angle, fixed scale) { rotate_scaled_sprite(data, sprite.data, p.x(), p.y(), angle, scale); } ! void RotateScaledSpriteVFlip(const Bitmap &sprite, const Point &p, fixed angle, fixed scale) { rotate_scaled_sprite_v_flip(data, sprite.data, p.x(), p.y(), angle, scale); } ! void PivotSprite(const Bitmap &sprite, const Point &p, const Point &cp, fixed angle) { pivot_sprite(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle); } ! void PivotSpriteVFlip(const Bitmap &sprite, const Point &p, const Point &cp, fixed angle) { pivot_sprite_v_flip(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle); } ! void PivotScaledSprite(const Bitmap &sprite, const Point &p, const Point &cp, fixed angle, fixed scale) { pivot_scaled_sprite(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle, scale); } ! void PivotScaledSpriteVFlip(const Bitmap &sprite, const Point &p, const Point &cp, fixed angle, fixed scale) { pivot_scaled_sprite_v_flip(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle, scale); } void StretchSprite(const Bitmap &sprite, const Rect &r) { stretch_sprite(data, sprite.data, r.x(), r.y(), r.w(), r.h()); } --- 160,171 ---- void DrawLitSprite(const Bitmap &sprite, const Point &p, const Color &c) { draw_lit_sprite(data, sprite.data, p.x(), p.y(), c); } void DrawGouraoudSprite(const Bitmap &sprite, const Point &p, const Color &c1, const Color &c2, const Color &c3, const Color &c4) { draw_gouraud_sprite(data, sprite.data, p.x(), p.y(), c1,c2,c3,c4); } ! void RotateSprite(const Bitmap &sprite, const Point &p, long angle) { rotate_sprite(data, sprite.data, p.x(), p.y(), angle); } ! void RotateSpriteVFlip(const Bitmap &sprite, const Point &p, long angle) { rotate_sprite_v_flip(data, sprite.data, p.x(), p.y(), angle); } ! void RotateScaledSprite(const Bitmap &sprite, const Point &p, long angle, long scale) { rotate_scaled_sprite(data, sprite.data, p.x(), p.y(), angle, scale); } ! void RotateScaledSpriteVFlip(const Bitmap &sprite, const Point &p, long angle, long scale) { rotate_scaled_sprite_v_flip(data, sprite.data, p.x(), p.y(), angle, scale); } ! void PivotSprite(const Bitmap &sprite, const Point &p, const Point &cp, long angle) { pivot_sprite(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle); } ! void PivotSpriteVFlip(const Bitmap &sprite, const Point &p, const Point &cp, long angle) { pivot_sprite_v_flip(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle); } ! void PivotScaledSprite(const Bitmap &sprite, const Point &p, const Point &cp, long angle, long scale) { pivot_scaled_sprite(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle, scale); } ! void PivotScaledSpriteVFlip(const Bitmap &sprite, const Point &p, const Point &cp, long angle, long scale) { pivot_scaled_sprite_v_flip(data, sprite.data, p.x(), p.y(), cp.x(), cp.y(), angle, scale); } void StretchSprite(const Bitmap &sprite, const Rect &r) { stretch_sprite(data, sprite.data, r.x(), r.y(), r.w(), r.h()); } *************** *** 173,184 **** void DrawLitSprite(const Bitmap &sprite, int x, int y, int c) { draw_lit_sprite(data, sprite.data, x, y, c); } void DrawGouraoudSprite(const Bitmap &sprite, int x, int y, int c1, int c2, int c3, int c4) { draw_gouraud_sprite(data, sprite.data, x, y, c1,c2,c3,c4); } ! void RotateSprite(const Bitmap &sprite, int x, int y, fixed angle) { rotate_sprite(data, sprite.data, x, y, angle); } ! void RotateSpriteVFlip(const Bitmap &sprite, int x, int y, fixed angle) { rotate_sprite_v_flip(data, sprite.data, x, y, angle); } ! void RotateScaledSprite(const Bitmap &sprite, int x, int y, fixed angle, fixed scale) { rotate_scaled_sprite(data, sprite.data, x, y, angle, scale); } ! void RotateScaledSpriteVFlip(const Bitmap &sprite, int x, int y, fixed angle, fixed scale) { rotate_scaled_sprite_v_flip(data, sprite.data, x, y, angle, scale); } ! void PivotSprite(const Bitmap &sprite, int x, int y, int cx, int cy, fixed angle) { pivot_sprite(data, sprite.data, x, y, cx, cy, angle); } ! void PivotSpriteVFlip(const Bitmap &sprite, int x, int y, int cx, int cy, fixed angle) { pivot_sprite_v_flip(data, sprite.data, x, y, cx, cy, angle); } ! void PivotScaledSprite(const Bitmap &sprite, int x, int y, int cx, int cy, fixed angle, fixed scale) { pivot_scaled_sprite(data, sprite.data, x, y, cx, cy, angle, scale); } ! void PivotScaledSpriteVFlip(const Bitmap &sprite, int x, int y, int cx, int cy, fixed angle, fixed scale) { pivot_scaled_sprite_v_flip(data, sprite.data, x, y, cx, cy, angle, scale); } void StretchSprite(const Bitmap &sprite, int x, int y, int w, int h) { stretch_sprite(data, sprite.data, x, y, w, h); } --- 177,188 ---- void DrawLitSprite(const Bitmap &sprite, int x, int y, int c) { draw_lit_sprite(data, sprite.data, x, y, c); } void DrawGouraoudSprite(const Bitmap &sprite, int x, int y, int c1, int c2, int c3, int c4) { draw_gouraud_sprite(data, sprite.data, x, y, c1,c2,c3,c4); } ! void RotateSprite(const Bitmap &sprite, int x, int y, long angle) { rotate_sprite(data, sprite.data, x, y, angle); } ! void RotateSpriteVFlip(const Bitmap &sprite, int x, int y, long angle) { rotate_sprite_v_flip(data, sprite.data, x, y, angle); } ! void RotateScaledSprite(const Bitmap &sprite, int x, int y, long angle, long scale) { rotate_scaled_sprite(data, sprite.data, x, y, angle, scale); } ! void RotateScaledSpriteVFlip(const Bitmap &sprite, int x, int y, long angle, long scale) { rotate_scaled_sprite_v_flip(data, sprite.data, x, y, angle, scale); } ! void PivotSprite(const Bitmap &sprite, int x, int y, int cx, int cy, long angle) { pivot_sprite(data, sprite.data, x, y, cx, cy, angle); } ! void PivotSpriteVFlip(const Bitmap &sprite, int x, int y, int cx, int cy, long angle) { pivot_sprite_v_flip(data, sprite.data, x, y, cx, cy, angle); } ! void PivotScaledSprite(const Bitmap &sprite, int x, int y, int cx, int cy, long angle, long scale) { pivot_scaled_sprite(data, sprite.data, x, y, cx, cy, angle, scale); } ! void PivotScaledSpriteVFlip(const Bitmap &sprite, int x, int y, int cx, int cy, long angle, long scale) { pivot_scaled_sprite_v_flip(data, sprite.data, x, y, cx, cy, angle, scale); } void StretchSprite(const Bitmap &sprite, int x, int y, int w, int h) { stretch_sprite(data, sprite.data, x, y, w, h); } *************** *** 226,230 **** void MaskedVerticalTile(Bitmap &dest, int i, int x, int y, int h, int count); ! static Bitmap null; }; } --- 230,234 ---- void MaskedVerticalTile(Bitmap &dest, int i, int x, int y, int h, int count); ! static MAS::Bitmap null2; }; } |
From: Paul F. <you...@us...> - 2004-06-17 20:44:38
|
Update of /cvsroot/timewarp/source/twgui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21585/source/twgui Modified Files: twmenuexamples.h Log Message: updating Masking library to version 0.76 (2004.04.20). Had to fix some namespace conflicts with other classes. Index: twmenuexamples.h =================================================================== RCS file: /cvsroot/timewarp/source/twgui/twmenuexamples.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** twmenuexamples.h 24 Mar 2004 23:51:45 -0000 1.5 --- twmenuexamples.h 17 Jun 2004 20:44:24 -0000 1.6 *************** *** 15,19 **** public: TextInfoArea *tia; ! Button *closebutton; PopupTextInfo(EmptyButton *creator, char *ident, char *id2, int axshift, int ayshift, --- 15,19 ---- public: TextInfoArea *tia; ! ::Button *closebutton; PopupTextInfo(EmptyButton *creator, char *ident, char *id2, int axshift, int ayshift, *************** *** 46,50 **** // A popup-list consists of several components, which you've to initialize: // (most of it is automatically initialized from the shape of the menu screen- ! // the button images should be present on it as well) class PopupList : public PopupT { --- 46,50 ---- // A popup-list consists of several components, which you've to initialize: // (most of it is automatically initialized from the shape of the menu screen- ! // the ::Button images should be present on it as well) class PopupList : public PopupT { *************** *** 90,94 **** MatrixIcons *icons; TextButton *info; ! Button *oncerandom, *alwaysrandom; PopupFleetSelection(EmptyButton *creator, char *ident, int axshift, int ayshift, char *datafilename, --- 90,94 ---- MatrixIcons *icons; TextButton *info; ! ::Button *oncerandom, *alwaysrandom; PopupFleetSelection(EmptyButton *creator, char *ident, int axshift, int ayshift, char *datafilename, *************** *** 119,123 **** class PopupOk : public Popup { ! Button *ok; public: PopupOk(char *ident, int xcenter, int ycenter, --- 119,123 ---- class PopupOk : public Popup { ! ::Button *ok; public: PopupOk(char *ident, int xcenter, int ycenter, *************** *** 132,136 **** class PopupYN : public Popup { ! Button *yes, *no; public: PopupYN(char *ident, int xcenter, int ycenter, --- 132,136 ---- class PopupYN : public Popup { ! ::Button *yes, *no; public: PopupYN(char *ident, int xcenter, int ycenter, *************** *** 151,155 **** public: bool selection; ! Button *downdir; char dir[512]; // max filename length --- 151,155 ---- public: bool selection; ! ::Button *downdir; char dir[512]; // max filename length |
From: Paul F. <you...@us...> - 2004-06-17 20:44:38
|
Update of /cvsroot/timewarp/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21585/source Modified Files: melee.h Log Message: updating Masking library to version 0.76 (2004.04.20). Had to fix some namespace conflicts with other classes. Index: melee.h =================================================================== RCS file: /cvsroot/timewarp/source/melee.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** melee.h 11 Apr 2004 08:15:01 -0000 1.18 --- melee.h 17 Jun 2004 20:44:23 -0000 1.19 *************** *** 326,330 **** DATAFILE *font_data; //fonts FONT *basic_font; //font to use if no other is available ! Color *palette; volatile bool screen_corrupted; int last_poll; --- 326,330 ---- DATAFILE *font_data; //fonts FONT *basic_font; //font to use if no other is available ! ::Color *palette; volatile bool screen_corrupted; int last_poll; |
From: Paul F. <you...@us...> - 2004-06-17 20:44:31
|
Update of /cvsroot/timewarp/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21585/include Modified Files: MASkinG.h Log Message: updating Masking library to version 0.76 (2004.04.20). Had to fix some namespace conflicts with other classes. Index: MASkinG.h =================================================================== RCS file: /cvsroot/timewarp/include/MASkinG.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MASkinG.h 6 Apr 2004 20:19:35 -0000 1.1 --- MASkinG.h 17 Jun 2004 20:44:22 -0000 1.2 *************** *** 10,14 **** #ifdef ALLEGRO_MSVC ! #pragma warning (disable:4786,4788) #endif --- 10,15 ---- #ifdef ALLEGRO_MSVC ! #pragma warning (disable:4786) ! #pragma warning (disable:4788) #endif |
From: Paul F. <you...@us...> - 2004-06-17 01:13:45
|
Update of /cvsroot/timewarp/source/ais In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19069/source/ais Modified Files: AIBusterBot.cpp AIBusterBot.h Removed Files: AIActions.h Log Message: cleaning up BusterBot stuff a bit more --- AIActions.h DELETED --- Index: AIBusterBot.cpp =================================================================== RCS file: /cvsroot/timewarp/source/ais/AIBusterBot.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AIBusterBot.cpp 15 Jun 2004 20:01:45 -0000 1.2 --- AIBusterBot.cpp 17 Jun 2004 01:13:33 -0000 1.3 *************** *** 8,11 **** --- 8,25 ---- Revision history: 2004.06.12 yb started + + This file is part of "Star Control: TimeWarp" + http://timewarp.sourceforge.net/ + Copyright (C) 2001-2004 TimeWarp development team + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ *************** *** 29,37 **** #include "AIBusterBot.h" ! #include "AIActions.h" using namespace AIBuster; AIBusterBot::AIBusterBot(const char *name, int channel) : ! Control(name, channel) { clearPlans(); --- 43,51 ---- #include "AIBusterBot.h" ! #include "AIDefaultActions.h" using namespace AIBuster; AIBusterBot::AIBusterBot(const char *name, int channel) : ! Control(name, channel), TimeToQuickRefresh(DefaultTimeToQuickRefresh), TimeToCompleteRefresh(DefaultTimeToCompleteRefresh) { clearPlans(); *************** *** 61,65 **** int AIBusterBot::think() ! { static int nextQuickRefresh = game->game_time; static int nextCompleteRefresh = game->game_time; --- 75,85 ---- int AIBusterBot::think() ! { ! //nothing to think about if the object being controlled doesn't exist. ! if (this->ship == NULL || ! this->ship->exists() == false) ! return 0; ! ! //decide how frequently the AI will perform lengthier procedures static int nextQuickRefresh = game->game_time; static int nextCompleteRefresh = game->game_time; *************** *** 67,72 **** if (game->game_time >= nextCompleteRefresh) { ! nextQuickRefresh = game->game_time + AIBuster::TimeToQuickRefresh; ! nextCompleteRefresh = game->game_time + AIBuster::TimeToCompleteRefresh ; message.print(1000,15,"AI: Complete refresh. %i plans", plans.size());//TODO remove --- 87,92 ---- if (game->game_time >= nextCompleteRefresh) { ! nextQuickRefresh = game->game_time + TimeToQuickRefresh; ! nextCompleteRefresh = game->game_time + TimeToCompleteRefresh ; message.print(1000,15,"AI: Complete refresh. %i plans", plans.size());//TODO remove *************** *** 75,79 **** } else if (game->game_time >= nextQuickRefresh) { ! nextQuickRefresh = game->game_time + AIBuster::TimeToQuickRefresh; message.print(1000,15,"AI: Quick refresh. %i plans", plans.size());//TODO remove --- 95,99 ---- } else if (game->game_time >= nextQuickRefresh) { ! nextQuickRefresh = game->game_time + TimeToQuickRefresh; message.print(1000,15,"AI: Quick refresh. %i plans", plans.size());//TODO remove *************** *** 165,169 **** object->get_team() != this->ship->get_team()) // asuming that all teams are pair-wise enemies { - //action = new AIAction(100, object); action = new AIActionAttack(100, object); --- 185,188 ---- *************** *** 207,214 **** }/**/ - - - - --- 226,229 ---- *************** *** 220,222 **** ! --- 235,237 ---- ! Index: AIBusterBot.h =================================================================== RCS file: /cvsroot/timewarp/source/ais/AIBusterBot.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AIBusterBot.h 15 Jun 2004 20:01:45 -0000 1.2 --- AIBusterBot.h 17 Jun 2004 01:13:33 -0000 1.3 *************** *** 8,11 **** --- 8,25 ---- Revision history: 2004.06.12 yb started + + This file is part of "Star Control: TimeWarp" + http://timewarp.sourceforge.net/ + Copyright (C) 2001-2004 TimeWarp development team + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ *************** *** 26,88 **** #include "../melee/mframe.h" #include "../melee/mship.h" ! #include "../melee/mmain.h" #include <list> using namespace std; ! ! /** a namespace to avoid cluttering up the default namespace. */ ! namespace AIBuster { ! ! typedef unsigned short PriorityType; ! ! enum { PRIORITY_NONE=0, PRIORITY_MAX=255 } ; ! ! /** An AIAction is a potential action that an AI can take. */ ! class AIAction { ! public: ! ! /** Constructor. Creates the action, tracking its priority and target. ! @priority The action's priority, rated from 0 to 255. Higher means that the AI ! will favour this action over lower priority ones. ! @target the target of this action. ! */ ! AIAction(PriorityType priority, Presence * target) ! : _priority(priority), _target(target) ! { } ! ! /** Figures out what this action's priority, if it has changed from its previous value. Returns its new priority. ! If the action is no longer valid, the returned value will be zero (and should no longer be considered in the ! action list). ! @return the new priority for this action. It'll be a positive number for actions that can still be performed, ! and zero for actions that can't be performed. */ ! PriorityType virtual updatePriority() { return _priority; } ! ! bool const operator < (const AIAction & rhs) { return rhs._priority < this->_priority; } ! ! virtual void performAction(int & state) { } ! ! //protected: ! ! /** a priority of the action. Higher means that it's more likely to take place. */ ! PriorityType _priority; ! ! /** the target of the action. */ ! Presence * _target; ! }; typedef list<AIAction*> PlanType; typedef list<AIAction*>::iterator PlanTypeIterator; - //typedef priority_queue< AIBuster::AIAction, - // vector<AIBuster::AIAction> - // > PlanType; - //typedef priority_queue<AIBuster::AIAction>::iterator PlanTypeIterator; - - const int TimeToQuickRefresh = 1000; - const int TimeToCompleteRefresh = 4000; - } - /** This class defines an AI which can make several plans, sort the plans by priority, and combine the top plans into a concrete action. --- 40,67 ---- #include "../melee/mframe.h" #include "../melee/mship.h" ! #include "../melee/mmain.h" ! #include "AIAction.h" ! using namespace AIBuster; #include <list> using namespace std; ! namespace AIBuster { + /** tracks plans. */ typedef list<AIAction*> PlanType; + + /** iterates through a list of plans. */ typedef list<AIAction*>::iterator PlanTypeIterator; + + /** the number of game-milliseconds which must pass befor a quick-refresh of plans is made. */ + const int DefaultTimeToQuickRefresh = 1000; + + /** the number of game-milliseconds which must pass befor a complete-refresh of plans is made. */ + const int DefaultTimeToCompleteRefresh = 4000; + } + /** This class defines an AI which can make several plans, sort the plans by priority, and combine the top plans into a concrete action. *************** *** 142,146 **** @param object the SpaceObject to deal with. @return a new AIAction which can try to deal with the object. The priority and target are set appropriately.*/ ! AIBuster::AIAction * AIBusterBot::createAction(SpaceObject * object); }; --- 121,132 ---- @param object the SpaceObject to deal with. @return a new AIAction which can try to deal with the object. The priority and target are set appropriately.*/ ! AIBuster::AIAction * AIBusterBot::createAction(SpaceObject * object); ! ! /** the number of game-milliseconds which must pass befor a quick-refresh of plans is made. */ ! int TimeToQuickRefresh; ! ! /** the number of game-milliseconds which must pass befor a complete-refresh of plans is made. */ ! int TimeToCompleteRefresh; ! }; |
From: Paul F. <you...@us...> - 2004-06-17 01:13:45
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19069 Modified Files: twwin.dsp Log Message: cleaning up BusterBot stuff a bit more Index: twwin.dsp =================================================================== RCS file: /cvsroot/timewarp/twwin.dsp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** twwin.dsp 15 Jun 2004 20:01:44 -0000 1.46 --- twwin.dsp 17 Jun 2004 01:13:32 -0000 1.47 *************** *** 338,342 **** # Begin Source File ! SOURCE=.\source\ais\AIActions.h # End Source File # Begin Source File --- 338,342 ---- # Begin Source File ! SOURCE=.\source\ais\AIAction.h # End Source File # Begin Source File *************** *** 350,353 **** --- 350,357 ---- # Begin Source File + SOURCE=.\source\ais\AIDefaultActions.h + # End Source File + # Begin Source File + SOURCE=.\source\ais\c_input.cpp # End Source File |
From: Paul F. <you...@us...> - 2004-06-15 20:01:54
|
Update of /cvsroot/timewarp/source/ais In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11200/source/ais Modified Files: AIBusterBot.cpp AIBusterBot.h Added Files: AIActions.h Log Message: updating BusterBot stuff (still doesn't work!) --- NEW FILE: AIActions.h --- /** AIActions.h $Id: AIActions.h,v 1.1 2004/06/15 20:01:45 youbastrd Exp $ Creates some default actions available for AIs. Revision history: 2004.06.15 yb started */ #ifndef AIACTIONS_HEADER_DEFINED #define AIACTIONS_HEADER_DEFINED 1 #ifdef ALLEGRO_MSVC #pragma warning (disable:4786) #endif #include <string.h> #include <stdio.h> #include <allegro.h> #include "../melee.h" #include "../ais.h" #include "../melee/mcontrol.h" #include "../melee/mframe.h" #include "../melee/mship.h" #include "../melee/mmain.h" #include "AIBusterBot.h" using namespace AIBuster; namespace AIBuster { class AIActionAttack : public AIAction { public: AIActionAttack(PriorityType priority, Presence * target) : AIAction(priority, target) { } virtual void performAction(int & state) { state |= keyflag::right; } virtual PriorityType updatePriority() { if (_target == NULL) _priority = PRIORITY_NONE; return AIAction::updatePriority(); } }; } #endif Index: AIBusterBot.cpp =================================================================== RCS file: /cvsroot/timewarp/source/ais/AIBusterBot.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AIBusterBot.cpp 12 Jun 2004 14:51:48 -0000 1.1 --- AIBusterBot.cpp 15 Jun 2004 20:01:45 -0000 1.2 *************** *** 1,48 **** ! /** ! AIBusterBot.cpp ! $Id$ ! ! Class implementation of an AI called BusterBot. Should be able to create several goals, and pick ! appropriate actions based on those goals. ! ! Revision history: ! 2004.06.12 yb started ! */ ! ! ! #include <string.h> ! #include <stdio.h> ! #include <allegro.h> ! ! #include "../melee.h" ! #include "../ais.h" ! #include "../melee/mcontrol.h" ! #include "../melee/mframe.h" ! #include "../melee/mship.h" #include "../melee/mmain.h" #include "AIBusterBot.h" ! AIBusterBot::AIBusterBot(const char *name, int channel) : ! Control(name, channel) ! { } - AIBusterBot::~AIBusterBot() - { ! } ! bool AIBusterBot::die() { ! return Control::die(); ! } ! void AIBusterBot::calculate() ! { ! } ! int AIBusterBot::think() ! { ! return 0; ! } --- 1,222 ---- ! /** ! AIBusterBot.cpp ! $Id$ ! ! Class implementation of an AI called BusterBot. Should be able to create several goals, and pick ! appropriate actions based on those goals. ! ! Revision history: ! 2004.06.12 yb started ! */ ! ! #ifdef ALLEGRO_MSVC ! #pragma warning (disable:4786) ! #endif ! ! #include <string.h> ! #include <stdio.h> ! #include <allegro.h> ! ! #include "../melee.h" ! REGISTER_FILE ! #include "../ais.h" ! #include "../melee/mcontrol.h" ! #include "../melee/mframe.h" ! #include "../melee/mship.h" #include "../melee/mmain.h" + #include "../melee/mview.h" //for message.out() + #include "AIBusterBot.h" + #include "AIActions.h" + using namespace AIBuster; + + AIBusterBot::AIBusterBot(const char *name, int channel) : + Control(name, channel) + { + clearPlans(); + } + + AIBusterBot::~AIBusterBot() + { + clearPlans(); + } + + bool AIBusterBot::die() + { + clearPlans(); + return Control::die(); + } + + void AIBusterBot::select_ship(Ship* ship_pointer, const char* ship_name) { + Control::select_ship(ship_pointer, ship_name); + completeRefreshPlans(); + } + + void AIBusterBot::calculate() + { + Control::calculate(); + + } + + int AIBusterBot::think() + { + static int nextQuickRefresh = game->game_time; + static int nextCompleteRefresh = game->game_time; + + if (game->game_time >= nextCompleteRefresh) { + + nextQuickRefresh = game->game_time + AIBuster::TimeToQuickRefresh; + nextCompleteRefresh = game->game_time + AIBuster::TimeToCompleteRefresh ; + + message.print(1000,15,"AI: Complete refresh. %i plans", plans.size());//TODO remove + + this->completeRefreshPlans(); + } + else if (game->game_time >= nextQuickRefresh) { + nextQuickRefresh = game->game_time + AIBuster::TimeToQuickRefresh; ! message.print(1000,15,"AI: Quick refresh. %i plans", plans.size());//TODO remove ! ! this->quickRefreshPlans(); ! } ! ! //set initial action to do nothing ! int action = 0; ! ! //pick an action to perform ! if (plans.size() == 0) ! return action; ! for (PlanTypeIterator i=plans.begin(); ! i!=plans.end(); ! i++) ! { ! ASSERT(*i != NULL); ! (*i)->performAction(action); ! } ! ! return action; ! } ! ! ! ! void AIBusterBot::clearPlans() { ! for (PlanTypeIterator i=plans.begin(); i!=plans.end(); i++) { ! delete *i; ! } ! ! plans.clear(); ! } ! ! void AIBusterBot::quickRefreshPlans() ! { ! for (PlanTypeIterator i=plans.begin(); i!=plans.end(); i++) { ! ! PriorityType oldPri = (*i)->_priority; ! PriorityType updatedPri = (*i)->updatePriority(); ! //if this action now has zero priority, then it is no longer relevent: remove it ! if (updatedPri == PRIORITY_NONE) { ! plans.remove(*i); ! delete *i; ! continue; ! } ! ! if (oldPri != updatedPri) { ! // do somethin' here... perhaps pull this action out of the list, and re-insert it? to reduce the sort time later ! } ! } ! plans.sort(); ! } ! ! void AIBusterBot::completeRefreshPlans() ! {STACKTRACE ! clearPlans(); ! if (this->ship == NULL) ! return; ! ! Query q; ! SpaceObject *p = NULL; ! ! for (q.begin(this->ship, bit(LAYER_SHIPS), 50000); q.current; q.next()) ! { ! p = q.currento; ! AIAction * action = createAction(p); ! if (action != NULL) { ! plans.insert(plans.begin(), action); ! } ! } ! } ! ! AIAction * AIBusterBot::createAction(SpaceObject * object) ! {STACKTRACE ! ! AIAction * action = NULL; ! ! if (object->isShip() && ! object->exists() && ! this->ship != NULL && ! object->get_team() != this->ship->get_team()) // asuming that all teams are pair-wise enemies ! { ! //action = new AIAction(100, object); ! action = new AIActionAttack(100, object); ! ! } ! return action; ! } ! ! ! ! ! ! // copied and pasted from WussieBot ! /*Query ap; ! SpaceObject *p; ! if (ship->target && !ship->target->isInvisible ()) ! last_seen_time = game->game_time; ! else if ((rand () & 32767) < frame_time) ! last_seen_time = game->game_time - 1000; ! for (ap.begin (ship, bit (LAYER_CBODIES), planet_safe[state]); ! ap.current; ap.next ()) ! { ! p = ap.currento; ! if (p->isPlanet ()) ! { ! pangle = ship->trajectory_angle (p); ! va = atan (ship->get_vel ()); ! if (fabs (pangle - va) < PI/3) ! { ! avoid_planet = TRUE; ! if (normalize (pangle - va, PI2) < ! normalize (va - pangle, PI2)) ! angle = ! -PI/2 + ship->get_angle () - ! ship->trajectory_angle (p); ! else ! angle = ! PI/2 + ship->get_angle () - ! ship->trajectory_angle (p); ! } ! } ! }/**/ ! ! ! ! ! ! ! ! char * AIBusterBot::toString() ! { ! return "It's broken..."; ! } ! ! ! ! Index: AIBusterBot.h =================================================================== RCS file: /cvsroot/timewarp/source/ais/AIBusterBot.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AIBusterBot.h 12 Jun 2004 14:51:48 -0000 1.1 --- AIBusterBot.h 15 Jun 2004 20:01:45 -0000 1.2 *************** *** 1,106 **** ! /** ! AIBusterBot.h ! $Id$ ! ! Class definition of an AI called BusterBot. Should be able to create several goals, and pick ! appropriate actions based on those goals. ! ! Revision history: ! 2004.06.12 yb started ! */ ! ! #ifndef BUSTERBOT_HEADER_DEFINED ! #define BUSTERBOT_HEADER_DEFINED 1 ! ! #include <string.h> ! #include <stdio.h> ! #include <allegro.h> ! #include "../melee.h" ! #include "../ais.h" ! #include "../melee/mcontrol.h" ! #include "../melee/mframe.h" ! #include "../melee/mship.h" ! #include "../melee/mmain.h" ! class AIBusterBot : public Control { ! public: ! AIBusterBot(const char *name, int channel); ! virtual ~AIBusterBot(); ! virtual bool die(); ! virtual void calculate(); ! virtual int think(); ! virtual const char *getTypeName() { return "BusterBot"; } ! }; ! //class Control : public Presence { ! // public: ! // ! // /*! \brief controls CANNOT arbitrarily be killed off, because the deal with networking directly */ ! // virtual bool die(); ! // ! // /*! \brief true if this control will delete itself when it's ship dies */ ! // bool temporary; ! // unsigned char target_sign_color; ! // /*! \brief this pertains to network traffic - see comment above calculate() in mcontrol.cpp */ ! // int already; ! // int channel; ! // ! // ! // /*! \brief points at the current ship being controlled */ ! // Ship *ship; ! // /*! \brief keys currently pressed */ ! // KeyCode keys; ! // /*! \brief name of instance */ ! // char *iname; ! // SpaceObject *target; ! // int index; ! // bool valid_target(SpaceObject *t); ! // /*! \brief always-random selection, for the always-random button on the default ship selector */ ! // int always_random; ! // public: ! // /*! \brief handles camera focusing on a controls ship */ ! // virtual SpaceLocation *get_focus(); ! // int rand(); ! // /*! \brief loads configuration data from a ini file. ! // \example player1.load("scp.ini", "Keyboard1"); */ ! // virtual void load(const char* inifile, const char* inisection); ! // /*! \brief saves configuration data to a ini file. */ ! // virtual void save(const char* inifile, const char* inisection); ! // /*! \brief presents the ship selection dialog */ ! // virtual int choose_ship(VideoWindow *window, char *prompt, class Fleet *fleet); ! // /*! \brief called whenever the ship being controlled changes ! // WARNING: select_ship() is not thread-safe */ ! // virtual void select_ship(Ship* ship_pointer, const char* ship_name); ! // /*! \brief called every frame of physics */ ! // virtual void calculate(); ! // /*! \brief called by calculate... this is where the important stuff goes */ ! // virtual int think(); ! // /*! \brief returns the name of the control type, like "Joystick" */ ! // virtual const char *getTypeName() = 0; ! // /*! \brief returns the description of the control, like "NetworkGame(local)_Keyboard0" */ ! // virtual char *getDescription(); ! // /*! \brief the constructor initializes ship to NULL */ ! // Control (const char *name, int channel) ; ! // /*! \brief the destructor, which is rarely used */ ! // virtual ~Control () ; ! // /*! called by the GUI stuff to setup the controls (calibrate Joystick, set keys, etc.) */ ! // virtual void setup(); ! // virtual void set_target(int i); ! // virtual void target_stuff(); ! // virtual void animate(Frame *space); ! // ! // ! // enum {_prediction_keys_size = 128};//must be a power of 2 ! // //half-assed network bypass for prediction ! // KeyCode *_prediction_keys; ! // unsigned char _prediction_keys_index; ! // ! // /*! \brief for future mid-game lag changes */ ! // virtual void _event ( Event *e ); ! // ! // virtual void gen_buffered_data(); ! //}; #endif \ No newline at end of file --- 1,148 ---- ! /** ! AIBusterBot.h ! $Id$ ! ! Class definition of an AI called BusterBot. Should be able to create several goals, and pick ! appropriate actions based on those goals. ! ! Revision history: ! 2004.06.12 yb started ! */ ! ! #ifndef BUSTERBOT_HEADER_DEFINED ! #define BUSTERBOT_HEADER_DEFINED 1 ! #ifdef ALLEGRO_MSVC ! #pragma warning (disable:4786) ! #endif ! ! #include <string.h> ! #include <stdio.h> ! #include <allegro.h> ! ! #include "../melee.h" ! #include "../ais.h" ! #include "../melee/mcontrol.h" ! #include "../melee/mframe.h" ! #include "../melee/mship.h" ! #include "../melee/mmain.h" ! ! #include <list> ! using namespace std; ! ! /** a namespace to avoid cluttering up the default namespace. */ ! namespace AIBuster { ! ! typedef unsigned short PriorityType; + enum { PRIORITY_NONE=0, PRIORITY_MAX=255 } ; + + /** An AIAction is a potential action that an AI can take. */ + class AIAction { + public: + + /** Constructor. Creates the action, tracking its priority and target. + @priority The action's priority, rated from 0 to 255. Higher means that the AI + will favour this action over lower priority ones. + @target the target of this action. + */ + AIAction(PriorityType priority, Presence * target) + : _priority(priority), _target(target) + { } + + /** Figures out what this action's priority, if it has changed from its previous value. Returns its new priority. + If the action is no longer valid, the returned value will be zero (and should no longer be considered in the + action list). + @return the new priority for this action. It'll be a positive number for actions that can still be performed, + and zero for actions that can't be performed. */ + PriorityType virtual updatePriority() { return _priority; } + + bool const operator < (const AIAction & rhs) { return rhs._priority < this->_priority; } ! virtual void performAction(int & state) { } ! ! //protected: ! ! /** a priority of the action. Higher means that it's more likely to take place. */ ! PriorityType _priority; ! ! /** the target of the action. */ ! Presence * _target; ! }; + typedef list<AIAction*> PlanType; + typedef list<AIAction*>::iterator PlanTypeIterator; + + + //typedef priority_queue< AIBuster::AIAction, + // vector<AIBuster::AIAction> + // > PlanType; + //typedef priority_queue<AIBuster::AIAction>::iterator PlanTypeIterator; + + const int TimeToQuickRefresh = 1000; + const int TimeToCompleteRefresh = 4000; + } + + /** This class defines an AI which can make several plans, sort the plans by priority, and combine the top + plans into a concrete action. + @see ::Control */ + class AIBusterBot : public Control { + + public: + /** Constructor. + @param name + @param channel */ + AIBusterBot(const char *name, int channel); + + /** Destructor. */ + virtual ~AIBusterBot(); + + /** called when the AI is destroyed, but not when the ship it controls is destroyed. */ + virtual bool die(); + + /** Called periodically. */ + virtual void calculate(); + + /** Does all the AI in here. + @return a keyflag, which has each action the AI wishes to perform at a particular moment OR'ed into it. + @see ::keyflag + */ + virtual int think(); + + /** @return the name of the bot*/ + virtual const char *getTypeName() { return "BusterBot (Not working yet)"; } + + /** @return the name of the bot*/ + virtual char * getDescription() { return "BusterBot (Not working yet)"; } + + /** Chooses a ship. + @param ship_pointer + @param ship_name */ + virtual void select_ship(Ship* ship_pointer, const char* ship_name); + + /** returns a description of what's going on inside this class for debug purposes. */ + virtual char * toString(); + + protected: + + AIBuster::PlanType plans; + + /** gets rid of all plans. */ + virtual void clearPlans(); + + /** Quickly goes through each plan, and updates its priority. Invalid plans are removed. If a plan's priority has + changed, move its place in the queue accordingly. */ + virtual void quickRefreshPlans(); + + /** Completely dump the plans list and make a new one from scratch. */ + virtual void completeRefreshPlans(); + + /** Creates an action which can deal with the given space object. + @param object the SpaceObject to deal with. + @return a new AIAction which can try to deal with the object. The priority and target are set appropriately.*/ + AIBuster::AIAction * AIBusterBot::createAction(SpaceObject * object); + + }; + #endif \ No newline at end of file |
From: Paul F. <you...@us...> - 2004-06-15 20:01:54
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11200 Modified Files: twwin.dsp Log Message: updating BusterBot stuff (still doesn't work!) Index: twwin.dsp =================================================================== RCS file: /cvsroot/timewarp/twwin.dsp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** twwin.dsp 12 Jun 2004 14:51:49 -0000 1.45 --- twwin.dsp 15 Jun 2004 20:01:44 -0000 1.46 *************** *** 338,341 **** --- 338,345 ---- # Begin Source File + SOURCE=.\source\ais\AIActions.h + # End Source File + # Begin Source File + SOURCE=.\source\ais\AIBusterBot.cpp # End Source File |
From: Paul F. <you...@us...> - 2004-06-12 14:51:58
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19610 Modified Files: twwin.dsp Log Message: adding a very early version of the BusterBot AI (doesn't do anything yet) Index: twwin.dsp =================================================================== RCS file: /cvsroot/timewarp/twwin.dsp,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** twwin.dsp 6 Apr 2004 20:19:35 -0000 1.44 --- twwin.dsp 12 Jun 2004 14:51:49 -0000 1.45 *************** *** 338,341 **** --- 338,349 ---- # Begin Source File + SOURCE=.\source\ais\AIBusterBot.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\ais\AIBusterBot.h + # End Source File + # Begin Source File + SOURCE=.\source\ais\c_input.cpp # End Source File |
From: Paul F. <you...@us...> - 2004-06-12 14:51:58
|
Update of /cvsroot/timewarp/source/melee In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19610/source/melee Modified Files: mcontrol.cpp Log Message: adding a very early version of the BusterBot AI (doesn't do anything yet) Index: mcontrol.cpp =================================================================== RCS file: /cvsroot/timewarp/source/melee/mcontrol.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** mcontrol.cpp 26 Mar 2004 17:55:49 -0000 1.22 --- mcontrol.cpp 12 Jun 2004 14:51:49 -0000 1.23 *************** *** 15,19 **** #include "mview.h" //remove this #include "mfleet.h" ! #include "../scp.h" --- 15,20 ---- #include "mview.h" //remove this #include "mfleet.h" ! #include "../scp.h" ! #include "../ais/AIBusterBot.h" *************** *** 24,33 **** ai_index_human, ai_index_moron, ! ai_index_wussie, ai_index_vegetable, ai_index_end }; ! const char num_controls = 4; static char *gcc_sucks_dick[num_controls + 2] = { --- 25,35 ---- ai_index_human, ai_index_moron, ! ai_index_wussie, ! ai_index_buster, ai_index_vegetable, ai_index_end }; ! const char num_controls = 5; static char *gcc_sucks_dick[num_controls + 2] = { *************** *** 35,39 **** "Human", "MoronBot", ! "WussieBot", "VegetableBot", NULL}; --- 37,42 ---- "Human", "MoronBot", ! "WussieBot", ! "BusterBot", "VegetableBot", NULL}; *************** *** 87,91 **** case ai_index_human: return new ControlHuman(name, channel); case ai_index_moron: return new ControlMoron(name, channel); ! case ai_index_wussie: return new ControlWussie(name, channel); case ai_index_vegetable: return new ControlVegetable(name, channel); } --- 90,95 ---- case ai_index_human: return new ControlHuman(name, channel); case ai_index_moron: return new ControlMoron(name, channel); ! case ai_index_wussie: return new ControlWussie(name, channel); ! case ai_index_buster: return new AIBusterBot(name, channel); case ai_index_vegetable: return new ControlVegetable(name, channel); } |
From: Paul F. <you...@us...> - 2004-06-12 14:51:57
|
Update of /cvsroot/timewarp/source/ais In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19610/source/ais Added Files: AIBusterBot.cpp AIBusterBot.h Log Message: adding a very early version of the BusterBot AI (doesn't do anything yet) --- NEW FILE: AIBusterBot.cpp --- /** AIBusterBot.cpp $Id: AIBusterBot.cpp,v 1.1 2004/06/12 14:51:48 youbastrd Exp $ Class implementation of an AI called BusterBot. Should be able to create several goals, and pick appropriate actions based on those goals. Revision history: 2004.06.12 yb started */ #include <string.h> #include <stdio.h> #include <allegro.h> #include "../melee.h" #include "../ais.h" #include "../melee/mcontrol.h" #include "../melee/mframe.h" #include "../melee/mship.h" #include "../melee/mmain.h" #include "AIBusterBot.h" AIBusterBot::AIBusterBot(const char *name, int channel) : Control(name, channel) { } AIBusterBot::~AIBusterBot() { } bool AIBusterBot::die() { return Control::die(); } void AIBusterBot::calculate() { } int AIBusterBot::think() { return 0; } --- NEW FILE: AIBusterBot.h --- /** AIBusterBot.h $Id: AIBusterBot.h,v 1.1 2004/06/12 14:51:48 youbastrd Exp $ Class definition of an AI called BusterBot. Should be able to create several goals, and pick appropriate actions based on those goals. Revision history: 2004.06.12 yb started */ #ifndef BUSTERBOT_HEADER_DEFINED #define BUSTERBOT_HEADER_DEFINED 1 #include <string.h> #include <stdio.h> #include <allegro.h> #include "../melee.h" #include "../ais.h" #include "../melee/mcontrol.h" #include "../melee/mframe.h" #include "../melee/mship.h" #include "../melee/mmain.h" class AIBusterBot : public Control { public: AIBusterBot(const char *name, int channel); virtual ~AIBusterBot(); virtual bool die(); virtual void calculate(); virtual int think(); virtual const char *getTypeName() { return "BusterBot"; } }; //class Control : public Presence { // public: // // /*! \brief controls CANNOT arbitrarily be killed off, because the deal with networking directly */ // virtual bool die(); // // /*! \brief true if this control will delete itself when it's ship dies */ // bool temporary; // unsigned char target_sign_color; // /*! \brief this pertains to network traffic - see comment above calculate() in mcontrol.cpp */ // int already; // int channel; // // // /*! \brief points at the current ship being controlled */ // Ship *ship; // /*! \brief keys currently pressed */ // KeyCode keys; // /*! \brief name of instance */ // char *iname; // SpaceObject *target; // int index; // bool valid_target(SpaceObject *t); // /*! \brief always-random selection, for the always-random button on the default ship selector */ // int always_random; // public: // /*! \brief handles camera focusing on a controls ship */ // virtual SpaceLocation *get_focus(); // int rand(); // /*! \brief loads configuration data from a ini file. // \example player1.load("scp.ini", "Keyboard1"); */ // virtual void load(const char* inifile, const char* inisection); // /*! \brief saves configuration data to a ini file. */ // virtual void save(const char* inifile, const char* inisection); // /*! \brief presents the ship selection dialog */ // virtual int choose_ship(VideoWindow *window, char *prompt, class Fleet *fleet); // /*! \brief called whenever the ship being controlled changes // WARNING: select_ship() is not thread-safe */ // virtual void select_ship(Ship* ship_pointer, const char* ship_name); // /*! \brief called every frame of physics */ // virtual void calculate(); // /*! \brief called by calculate... this is where the important stuff goes */ // virtual int think(); // /*! \brief returns the name of the control type, like "Joystick" */ // virtual const char *getTypeName() = 0; // /*! \brief returns the description of the control, like "NetworkGame(local)_Keyboard0" */ // virtual char *getDescription(); // /*! \brief the constructor initializes ship to NULL */ // Control (const char *name, int channel) ; // /*! \brief the destructor, which is rarely used */ // virtual ~Control () ; // /*! called by the GUI stuff to setup the controls (calibrate Joystick, set keys, etc.) */ // virtual void setup(); // virtual void set_target(int i); // virtual void target_stuff(); // virtual void animate(Frame *space); // // // enum {_prediction_keys_size = 128};//must be a power of 2 // //half-assed network bypass for prediction // KeyCode *_prediction_keys; // unsigned char _prediction_keys_index; // // /*! \brief for future mid-game lag changes */ // virtual void _event ( Event *e ); // // virtual void gen_buffered_data(); //}; #endif |
From: Yura S. <yu...@us...> - 2004-05-03 21:33:25
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6678 Modified Files: client.ini fleets.ini makefile scp.ini server.ini Log Message: Updating information about libraries Index: fleets.ini =================================================================== RCS file: /cvsroot/timewarp/fleets.ini,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 *** fleets.ini 26 Mar 2004 18:22:20 -0000 1.83 --- fleets.ini 3 May 2004 21:32:45 -0000 1.84 *************** *** 1,82 **** [Player1] Slot0 = earcr ! Slot1 = ilwav ! Slot2 = kzedr ! Slot3 = mmrxf ! Size = 79 MaxFleetCost = 500 ! Slot4 = mycpo ! Slot5 = spael Slot6 = syrpe ! Slot7 = umgdr Slot8 = vuxin ! Slot9 = yehte ! Slot10 = druma ! Slot11 = kohma ! Slot12 = meltr ! Slot13 = orzne ! Slot14 = pkufu ! Slot15 = supbl ! Slot16 = thrto ! Slot17 = utwju ! Slot18 = zfpst ! Slot19 = clapi ! Slot20 = dakvi ! Slot21 = dooco ! Slot22 = exqen ! Slot23 = harra ! Slot24 = herex ! Slot25 = ktacr ! Slot26 = lk_sa ! Slot27 = owavo ! Slot28 = plopl ! Slot29 = vyrin ! Slot30 = xchex ! Slot31 = artem ! Slot32 = choex ! Slot33 = clofl ! Slot34 = clofl ! Slot35 = conca ! Slot36 = crore ! Slot37 = dajem ! Slot38 = djila ! Slot39 = dragr ! Slot40 = earc2 ! Slot41 = estgu ! Slot42 = fiear ! Slot43 = geror ! Slot44 = glads ! Slot45 = hotsp ! Slot46 = hubde ! Slot47 = hydcr ! Slot48 = ilwsp ! Slot49 = impka ! Slot50 = impka ! Slot51 = jnkla ! Slot52 = jygst ! Slot53 = kahbo ! Slot54 = montr ! Slot55 = neodr ! Slot56 = nisha ! Slot57 = ostdi ! Slot58 = plala Slot59 = quasi ! Slot60 = quawr ! Slot61 = rogsq ! Slot62 = sefn2 ! Slot63 = strsc ! Slot64 = tauar ! Slot65 = tauda ! Slot66 = tauem ! Slot67 = taugl ! Slot68 = tauhu ! Slot69 = taule ! Slot70 = taumc ! Slot71 = taust ! Slot72 = trige ! Slot73 = ulzin ! Slot74 = wassu ! Slot75 = wistr ! Slot76 = xxxma Slot77 = yusra Slot78 = zeksh --- 1,82 ---- [Player1] Slot0 = earcr ! Slot1 = chebr ! Slot2 = andgu ! Slot3 = ilwav ! Size = 77 MaxFleetCost = 500 ! Slot4 = kzedr ! Slot5 = yehte Slot6 = syrpe ! Slot7 = spael Slot8 = vuxin ! Slot9 = umgdr ! Slot10 = arisk ! Slot11 = mycpo ! Slot12 = mmrxf ! Slot13 = shosc ! Slot14 = thrto ! Slot15 = orzne ! Slot16 = druma ! Slot17 = meltr ! Slot18 = chmav ! Slot19 = kohma ! Slot20 = utwju ! Slot21 = supbl ! Slot22 = pkufu ! Slot23 = slypr ! Slot24 = zfpst ! Slot25 = clofl ! Slot26 = tauar ! Slot27 = bubex ! Slot28 = tauda ! Slot29 = neodr ! Slot30 = tauem ! Slot31 = nisha ! Slot32 = hydcr ! Slot33 = taugl ! Slot34 = tauhu ! Slot35 = taule ! Slot36 = taumc ! Slot37 = estgu ! Slot38 = alckr ! Slot39 = impka ! Slot40 = glads ! Slot41 = dragr ! Slot42 = taust ! Slot43 = dajem ! Slot44 = artem ! Slot45 = hubde ! Slot46 = fiear ! Slot47 = rogsq ! Slot48 = wistr ! Slot49 = plala ! Slot50 = montr ! Slot51 = hotsp ! Slot52 = batde ! Slot53 = djila ! Slot54 = zeksh ! Slot55 = trige ! Slot56 = conca ! Slot57 = choex ! Slot58 = jnkla Slot59 = quasi ! Slot60 = geror ! Slot61 = wassu ! Slot62 = strsc ! Slot63 = xxxma ! Slot64 = quawr ! Slot65 = sefn2 ! Slot66 = ilwsp ! Slot67 = ostdi ! Slot68 = yusra ! Slot69 = astba ! Slot70 = crore ! Slot71 = bipka ! Slot72 = jygst ! Slot73 = alhha ! Slot74 = earc2 ! Slot75 = kahbo ! Slot76 = ulzin Slot77 = yusra Slot78 = zeksh Index: client.ini =================================================================== RCS file: /cvsroot/timewarp/client.ini,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** client.ini 6 Apr 2004 20:19:34 -0000 1.33 --- client.ini 3 May 2004 21:32:45 -0000 1.34 *************** *** 17,21 **** ScreenHeight = 600 ! BitsPerPixel = 32 ;valid = values are 8 (ugly), 15, 16, 24 (slow), and 32 --- 17,21 ---- ScreenHeight = 600 ! BitsPerPixel = 16 ;valid = values are 8 (ugly), 15, 16, 24 (slow), and 32 *************** *** 41,45 **** View = Hero ;determines = where the camera goes ! InterpolateFrames = 0 ;0 = low quality, 1 = high quality Mip_min = 0 --- 41,45 ---- View = Hero ;determines = where the camera goes ! InterpolateFrames = 1 ;0 = low quality, 1 = high quality Mip_min = 0 *************** *** 76,79 **** [Menu] skin = interfaces/gametest ! SelectGame = 0 --- 76,79 ---- [Menu] skin = interfaces/gametest ! SelectGame = 1 Index: makefile =================================================================== RCS file: /cvsroot/timewarp/makefile,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** makefile 10 Apr 2004 20:51:05 -0000 1.16 --- makefile 3 May 2004 21:32:46 -0000 1.17 *************** *** 1,4 **** ############################################################################## ! # Compiling TimeWarp: make {win32=1} {debug=1} {NO_JGMOD=1} # # # # Define win32=1 when compiling with Mingw32 gcc compiler for windows # --- 1,4 ---- ############################################################################## ! # Compiling TimeWarp: make {win32=1} {debug=1} {NO_JGMOD=1} {NO_NET=1} # # # # Define win32=1 when compiling with Mingw32 gcc compiler for windows # *************** *** 10,15 **** # (Linux, FreeBSD, ...) # # # ! # The game depends on Allegro (4.0.x) and Lua (5.0.x) libraries, so you need # ! # to install them before running make # # # ############################################################################## --- 10,16 ---- # (Linux, FreeBSD, ...) # # # ! # The game depends on Allegro (4.0.x), FreeType, alfont, MASkinG, # ! # and Lua (5.0.x) libraries, so you need to install them before running # ! # make # # # ############################################################################## Index: scp.ini =================================================================== RCS file: /cvsroot/timewarp/scp.ini,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** scp.ini 26 Mar 2004 18:22:21 -0000 1.39 --- scp.ini 3 May 2004 21:32:46 -0000 1.40 *************** *** 28,41 **** [Config1] ! Backwards = 19 ! Thrust = 23 ! Left = 1 ! Right = 4 ! Fire = 103 ! AltFire = 14 ! Special = 105 ! Next_Target = 6 ! Prev_Target = 7 ! Closest_Target = 7 Extra1 = 0 Extra2 = 0 --- 28,41 ---- [Config1] ! Backwards = 42 ! Thrust = 45 ! Left = 41 ! Right = 43 ! Fire = 67 ! AltFire = 110 ! Special = 108 ! Next_Target = 66 ! Prev_Target = 65 ! Closest_Target = 16 Extra1 = 0 Extra2 = 0 *************** *** 44,48 **** Extra5 = 0 Extra6 = 0 ! Communicate = 0 --- 44,48 ---- Extra5 = 0 Extra6 = 0 ! Communicate = 3 *************** *** 73,77 **** [Player1] Type = Human ! Config = 0 Team = 0 --- 73,77 ---- [Player1] Type = Human ! Config = 1 Team = 0 *************** *** 84,88 **** [Player3] ! Type = none Config = 2 Team = 2 --- 84,88 ---- [Player3] ! Type = WussieBot Config = 2 Team = 2 *************** *** 90,94 **** [Player4] ! Type = none Config = 3 Team = 2 --- 90,94 ---- [Player4] ! Type = WussieBot Config = 3 Team = 2 *************** *** 96,100 **** [Player5] ! Type = none Config = 0 Team = 2 --- 96,100 ---- [Player5] ! Type = WussieBot Config = 0 Team = 2 Index: server.ini =================================================================== RCS file: /cvsroot/timewarp/server.ini,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** server.ini 14 Nov 2003 13:06:05 -0000 1.10 --- server.ini 3 May 2004 21:32:46 -0000 1.11 *************** *** 49,52 **** --- 49,53 ---- GravityMinDist = 6 ;weakens strength of gravity at short range GravityRange = 18 ;cut-off range beyond which gravity stops + PlanetDimension = 2 [Sun] |
From: Yura S. <yu...@us...> - 2004-05-03 21:33:24
|
Update of /cvsroot/timewarp/site In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6678/site Modified Files: index.html Log Message: Updating information about libraries Index: index.html =================================================================== RCS file: /cvsroot/timewarp/site/index.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** index.html 20 Apr 2004 10:58:39 -0000 1.3 --- index.html 3 May 2004 21:32:46 -0000 1.4 *************** *** 56,63 **** The latest version is <b>0.05u8</b>.<br> You can download it as a <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11311&release_id=187537">precompiled binary (win32)</a> or ! <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11312&release_id=187519">sources</a>.<br> To successfully compile the sources and play the game on Linux/Unix you first need ! <a href="http://www.allegro.cc/files/index.html">Allegro</a> and ! <a href="http://www.lua.org">Lua</a> <br> <!-- View <a href="">ChangeLog</a> to see the list of the latest changes.<br> --- 56,65 ---- The latest version is <b>0.05u8</b>.<br> You can download it as a <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11311&release_id=187537">precompiled binary (win32)</a> or ! <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11312&release_id=226993">sources</a>.<br> To successfully compile the sources and play the game on Linux/Unix you first need ! <a href="http://www.allegro.cc/files/index.html">Allegro</a>, <a href="http://www.lua.org">Lua</a>, ! <a href="http://freetype.sourceforge.net/download.html#stable">FreeType</a>, ! <a href="http://ferisrv5.uni-mb.si/~ma0747/html/masking.html">MASkinG</a> and ! <a href="http://surf.to/jgmod">jgmod</a> libraries. <br> <!-- View <a href="">ChangeLog</a> to see the list of the latest changes.<br> |
From: Yura S. <yu...@us...> - 2004-05-03 21:32:55
|
Update of /cvsroot/timewarp/source/melee In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6678/source/melee Modified Files: mframe.h Log Message: Updating information about libraries Index: mframe.h =================================================================== RCS file: /cvsroot/timewarp/source/melee/mframe.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** mframe.h 24 Mar 2004 23:51:37 -0000 1.21 --- mframe.h 3 May 2004 21:32:46 -0000 1.22 *************** *** 3,6 **** --- 3,8 ---- #define __MFRAME_H__ + #include "melee.h" + //debuging purposes only: extern int total_presences; |
From: Yura S. <yu...@us...> - 2004-04-20 10:58:49
|
Update of /cvsroot/timewarp/site In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30629 Modified Files: index.html Log Message: Site update Index: index.html =================================================================== RCS file: /cvsroot/timewarp/site/index.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** index.html 10 Apr 2004 20:51:06 -0000 1.2 --- index.html 20 Apr 2004 10:58:39 -0000 1.3 *************** *** 117,134 **** <li><a href="http://timewarp.sourceforge.net/forum/index.php">TimeWarp Forum (official)</a> </li> - <li><a - href="http://www.classicgaming.com/starcontrol/timewarp/tbeige.shtm">Team Beige</a> <br>In the - ancient times, this team was supposed to develop TimeWarp plot, but they keep they work in so secret - that nobody ever seen it. - </li> </ul> - <p align="left"><font size="3"><strong>older TimeWarp home page</strong></font></p> - - There is older TimeWarp home page at <a href="http://www.star-control.com/timewarp/">http://www.star-control.com/timewarp/</a>. - It was not updated for several years and is terribly outdated but - it was created by The Fly - Boaz Peleg, Ultron Debugger - Ze'ev Z. (the initial authors of TimeWarp) - and is quite interestiong to visit for historical reasons. - <p align="left"><font size="3"><strong>other Star Control inspired game projects in development</strong></font></p> <ul> --- 117,122 ---- |
From: Yura S. <yu...@us...> - 2004-04-19 22:41:25
|
Update of /cvsroot/timewarp/source/other In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31941 Added Files: events.cpp events.h tml.cpp tml.h Log Message: Added TML skeleton --- NEW FILE: tml.h --- /* $Id: tml.h,v 1.1 2004/04/19 22:41:15 yurand Exp $ */ /* This file is part of "Star Control: TimeWarp" http://timewarp.sourceforge.net/ Copyright (C) 2001-2004 TimeWarp development team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ #ifndef __TML_H__ #define __TML_H__ #include <string> #include <list> extern "C" { # include "lua.h" # include "lualib.h" # include "lauxlib.h" } #include "events.h" namespace tml { struct manager { manager(); ~manager(); }; // Helpers std::string get_string(lua_State* ls, int narg); double get_double(lua_State* ls, int narg); bool get_boolean(lua_State* ls, int narg); // Global int Save(lua_State* ls); int Load(lua_State* ls); // TML Commands: these function called from TML script int Add_Event(lua_State* ls); int Add_Event(lua_State* ls); int Add_Star(lua_State* ls); int Add_Sun(lua_State* ls); int Add_Planet(lua_State* ls); int Add_Ship(lua_State* ls); int Remove_Event(lua_State* ls); int Remove_Star(lua_State* ls); int Remove_Sun(lua_State* ls); int Remove_Planet(lua_State* ls); int Remove_Ship(lua_State* ls); int To_HyperSpace(lua_State* ls); int To_StarSystem(lua_State* ls); int To_Planet(lua_State* ls); int To_PlanetLander(lua_State* ls); // Events typedef std::list<TMLEvent*> TML_event_list; /// \brief add event to event list, it will be dispatched by pump() void add_event(int type, TMLEvent*); /// \brief causes events to be dispatched to all handler objects void pump(); }; #endif --- NEW FILE: events.cpp --- /* $Id: events.cpp,v 1.1 2004/04/19 22:41:15 yurand Exp $ */ /* This file is part of "Star Control: TimeWarp" http://timewarp.sourceforge.net/ Copyright (C) 2001-2004 TimeWarp development team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ #include "events.h" TMLEvent_ShipDied::TMLEvent_ShipDied(SpaceLocation& who, SpaceLocation* source): TMLEvent(EVENT_SHIP_DIED), who_(who), source_(source) { } TMLEvent_ShipTakeDamage::TMLEvent_ShipTakeDamage(SpaceLocation& who): TMLEvent(EVENT_SHIP_TAKE_DAMAGE), who_(who) { } TMLEvent_ShipColide::TMLEvent_ShipColide(SpaceLocation& who, SpaceLocation& with): TMLEvent(EVENT_SHIP_COLIDE), who_(who), with_(with) { } TMLEvent_ShipShot::TMLEvent_ShipShot(SpaceLocation& who, Shot& shot): TMLEvent(EVENT_SHIP_SHOT), who_(who), shot_(shot) { } --- NEW FILE: events.h --- /* $Id: events.h,v 1.1 2004/04/19 22:41:15 yurand Exp $ */ /* This file is part of "Star Control: TimeWarp" http://timewarp.sourceforge.net/ Copyright (C) 2001-2004 TimeWarp development team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ #ifndef __TML_EVENTS_H__ #define __TML_EVENTS_H__ #include "melee/mshot.h" enum TML_event{ EVENT_SHIP_DIED = 1, EVENT_SHIP_TAKE_DAMAGE, EVENT_SHIP_COLIDE, EVENT_SHIP_SHOT }; class TMLEvent { public: int type_; TMLEvent(int type) : type_(type){}; }; class TMLEvent_ShipDied: public TMLEvent { public: TMLEvent_ShipDied(SpaceLocation& who, SpaceLocation* source); SpaceLocation& who_; SpaceLocation* source_; }; class TMLEvent_ShipTakeDamage: public TMLEvent { public: TMLEvent_ShipTakeDamage(SpaceLocation& who); SpaceLocation& who_; }; class TMLEvent_ShipColide: public TMLEvent { public: TMLEvent_ShipColide(SpaceLocation& who, SpaceLocation& with); SpaceLocation& who_; SpaceLocation& with_; }; class TMLEvent_ShipShot: public TMLEvent { public: TMLEvent_ShipShot(SpaceLocation& who, Shot& shot); SpaceLocation& who_; Shot& shot_; }; #endif // __TML_EVENTS_H__ --- NEW FILE: tml.cpp --- /* $Id: tml.cpp,v 1.1 2004/04/19 22:41:15 yurand Exp $ */ /* This file is part of "Star Control: TimeWarp" http://timewarp.sourceforge.net/ Copyright (C) 2001-2004 TimeWarp development team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ #include "tml.h" //#include "game_config.h" namespace tml { /// \brief main game state lua_State* L; manager::manager() { L = lua_open(); if(L==NULL) { tw_error("Unable to init Lua state. Something realy bad happend"); } luaopen_base(L); luaopen_table(L); luaopen_io(L); luaopen_string(L); luaopen_math(L); #ifdef _DEBUG luaopen_debug(L); #endif lua_register(L, "Save", tml::Save); lua_register(L, "Load", tml::Load); lua_register(L, "Add_Event", tml::Add_Event); lua_register(L, "Add_Star", tml::Add_Star); lua_register(L, "Add_Sun", tml::Add_Sun); lua_register(L, "Add_Planet", tml::Add_Planet); lua_register(L, "Add_Ship", tml::Add_Ship); lua_register(L, "Remove_Event", tml::Remove_Event); lua_register(L, "Remove_Star", tml::Remove_Star); lua_register(L, "Remove_Sun", tml::Remove_Sun); lua_register(L, "Remove_Planet", tml::Remove_Planet); lua_register(L, "Remove_Ship", tml::Remove_Ship); lua_register(L, "To_HyperSpace", tml::To_HyperSpace); lua_register(L, "To_StarSystem", tml::To_StarSystem); lua_register(L, "To_Planet", tml::To_Planet); lua_register(L, "To_PlanetLander", tml::To_PlanetLander); //lua_dofile(L, game_config::lua_init); } manager::~manager() { lua_close(L); } // Helpers std::string get_string(lua_State* ls, int narg) { if( !lua_isstring(ls, narg) ) { tw_error("Get string failed"); } return lua_tostring(ls, narg); } double get_double(lua_State* ls, int narg) { if( !lua_isnumber(ls, narg) ) { tw_error("Get number failed"); } return lua_tonumber(ls, narg); } bool get_boolean(lua_State* ls, int narg) { if( !lua_isboolean(ls, narg) ) { tw_error("Get boolean failed"); } return lua_toboolean(ls, narg); } // Global int Save(lua_State* ls) { return -1; } int Load(lua_State* ls) { return -1; } // TML Commands: these function called from TML script int Add_Event(lua_State* ls) { return -1; } int Add_Star(lua_State* ls) { return -1; } int Add_Sun(lua_State* ls) { return -1; } int Add_Planet(lua_State* ls) { return -1; } int Add_Ship(lua_State* ls) { return -1; } int Remove_Event(lua_State* ls) { return -1; } int Remove_Star(lua_State* ls) { return -1; } int Remove_Sun(lua_State* ls) { return -1; } int Remove_Planet(lua_State* ls) { return -1; } int Remove_Ship(lua_State* ls) { return -1; } int To_HyperSpace(lua_State* ls) { return -1; } int To_StarSystem(lua_State* ls) { return -1; } int To_Planet(lua_State* ls) { return -1; } int To_PlanetLander(lua_State* ls) { return -1; } // std::map<int, TML_event_list> events; /// \brief add event to event list, it will be dispatched by pump() void add_event(int type, TMLEvent*) { } /// \brief causes events to be dispatched to all handler objects void pump() { } } |
From: Yura S. <yu...@us...> - 2004-04-11 08:28:37
|
Update of /cvsroot/timewarp/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20642/source Modified Files: melee.h Log Message: Index: melee.h =================================================================== RCS file: /cvsroot/timewarp/source/melee.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** melee.h 26 Mar 2004 16:56:01 -0000 1.17 --- melee.h 11 Apr 2004 08:15:01 -0000 1.18 *************** *** 8,13 **** #ifndef PI ! //# define PI 3.14159265358979323846 ! #define PI AL_PI #endif #ifdef PI2 --- 8,13 ---- #ifndef PI ! # define PI 3.14159265358979323846 ! //#define PI AL_PI #endif #ifdef PI2 |
From: Yura S. <yu...@us...> - 2004-04-11 08:28:37
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20642 Modified Files: Doxyfile version.txt Log Message: Index: Doxyfile =================================================================== RCS file: /cvsroot/timewarp/Doxyfile,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Doxyfile 20 Mar 2004 18:45:09 -0000 1.7 --- Doxyfile 11 Apr 2004 08:15:01 -0000 1.8 *************** *** 5,9 **** #--------------------------------------------------------------------------- PROJECT_NAME = StarControl:Timewarp ! PROJECT_NUMBER = 0.05u7 OUTPUT_DIRECTORY = ./docs/generated OUTPUT_LANGUAGE = English --- 5,9 ---- #--------------------------------------------------------------------------- PROJECT_NAME = StarControl:Timewarp ! PROJECT_NUMBER = 0.05u8 OUTPUT_DIRECTORY = ./docs/generated OUTPUT_LANGUAGE = English *************** *** 128,132 **** # configuration options related to the XML output #--------------------------------------------------------------------------- ! GENERATE_XML = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output --- 128,132 ---- # configuration options related to the XML output #--------------------------------------------------------------------------- ! GENERATE_XML = NO #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output *************** *** 161,165 **** COLLABORATION_GRAPH = YES TEMPLATE_RELATIONS = YES ! HIDE_UNDOC_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES --- 161,165 ---- COLLABORATION_GRAPH = YES TEMPLATE_RELATIONS = YES ! HIDE_UNDOC_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES Index: version.txt =================================================================== RCS file: /cvsroot/timewarp/version.txt,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** version.txt 21 Mar 2004 23:20:59 -0000 1.6 --- version.txt 11 Apr 2004 08:15:01 -0000 1.7 *************** *** 1,5 **** This is an beta version of Star Control: 0.05u9 ! 23 november 2003 (visit http://timewarp.sf.net/ for latest version) --- 1,5 ---- This is an beta version of Star Control: 0.05u9 ! 10 apr 2004 (visit http://timewarp.sf.net/ for latest version) |
From: Yura S. <yu...@us...> - 2004-04-10 21:04:38
|
Update of /cvsroot/timewarp/site In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17518/site Modified Files: index.html readme_eng.html Log Message: Updating makefile for using alfont and masking libraries Index: index.html =================================================================== RCS file: /cvsroot/timewarp/site/index.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** index.html 21 Mar 2004 23:20:59 -0000 1.1 --- index.html 10 Apr 2004 20:51:06 -0000 1.2 *************** *** 11,23 **** <body> - <div align="center"><center> <table border="0" cellpadding="0" cellspacing="0"> <tr><td align="center"><img border="0" src="logo.png" alt="TimeWarp" width="390" height="150"></td></tr> </table> ! ! </center></div><div align="center"><center> ! ! </center></div> <p><div class="title"><center>about</center></div> --- 11,21 ---- <body> + <div align="center"><center> <table border="0" cellpadding="0" cellspacing="0"> <tr><td align="center"><img border="0" src="logo.png" alt="TimeWarp" width="390" height="150"></td></tr> </table> ! </center> ! </div> <p><div class="title"><center>about</center></div> *************** *** 26,29 **** --- 24,28 ---- <td> <a href="snapshot.png"><img src="snapshot.png" alt="snapshot" width="240" height="180" border="1"></a> + </td> <td> <p align="left"><font size="3">Star Control TimeWarp is an open source clone/sequel to the epic cross-genre *************** *** 31,34 **** --- 30,34 ---- include an epic adventure. The plot of such an adventure would not have anything to do with the name "TimeWarp". Star Control: Timewarp is often affectionately called TW. + </font> </p> *************** *** 38,43 **** and is known to compile and run on <b>Linux</b>, <b>Mac OSX</b> and <b>Windows</b> (with the exception that it is still not 64-bit clean ! as nobody of us has access to such hardware)</p> ! </table></p> <p align="left"><font size="3">More detailed information about the game: --- 38,45 ---- and is known to compile and run on <b>Linux</b>, <b>Mac OSX</b> and <b>Windows</b> (with the exception that it is still not 64-bit clean ! as nobody of us has access to such hardware)</font> ! </p> ! </td> ! </table> <p align="left"><font size="3">More detailed information about the game: *************** *** 47,55 **** <br> Subscribe to our <a href="http://sourceforge.net/mail/?group_id=13354">mailing lists</a> if you want to always know the latest news about TimeWarp. </p> <div class="title"><center>downloads</center></div> <p><div class="indented"> ! The latest version is <b>0.05u9</b>.<br> You can download it as a <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11311&release_id=187537">precompiled binary (win32)</a> or <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11312&release_id=187519">sources</a>.<br> --- 49,58 ---- <br> Subscribe to our <a href="http://sourceforge.net/mail/?group_id=13354">mailing lists</a> if you want to always know the latest news about TimeWarp. + </font> </p> <div class="title"><center>downloads</center></div> <p><div class="indented"> ! The latest version is <b>0.05u8</b>.<br> You can download it as a <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11311&release_id=187537">precompiled binary (win32)</a> or <a href="http://sourceforge.net/project/showfiles.php?group_id=13354&package_id=11312&release_id=187519">sources</a>.<br> *************** *** 65,69 **** <div class="title"><center>news</center></div> ! <p><table class="date" cellspacing=0 cellpadding=0><td>Sat 28 Feb 2004</table> <div class="indented"> Site is created. --- 68,72 ---- <div class="title"><center>news</center></div> ! <p><table class="date" cellspacing=0 cellpadding=0><td>Sat 28 Feb 2004</td></table> <div class="indented"> Site is created. *************** *** 86,94 **** <br> You can support the project by participating discussion in ! <a href="http://dynamic.gamespy.com/~timewarp/ikonboard/ikonboard.cgi">TimeWarp forum</a>, where you can post suggestions for future development or just any questions about TimeWarp.<br> <br> You can support the project by posting bugreports and patches in <a href="http://bugs.cs.iupui.edu/cgi-bin/bugzilla/">TimeWarp Bugzilla</a> <br> <a href="http://cvs.sourceforge.net/viewcvs.py/timewarp/">TimeWarp CVS repository</a> --- 89,103 ---- <br> You can support the project by participating discussion in ! <a href="http://timewarp.sourceforge.net/forum/index.php">TimeWarp forum</a>, where you can post suggestions for future development or just any questions about TimeWarp.<br> <br> You can support the project by posting bugreports and patches in <a href="http://bugs.cs.iupui.edu/cgi-bin/bugzilla/">TimeWarp Bugzilla</a> + <br><br> + Following documents describes some of the issues concerning contributing to Timewarp + <ul> + <LI><A href="./get_involved.html">Get Involved</A></LI> + <LI><A href="./code_documentation.html">Document your code</A></LI> + </ul> <br> <a href="http://cvs.sourceforge.net/viewcvs.py/timewarp/">TimeWarp CVS repository</a> *************** *** 107,113 **** href="http://home.planet.nl/~devil723/timewarp/public_plot/index.htm">TimeWarp Public Plot</a> </li> <li><a ! href="http://dynamic.gamespy.com/~timewarp/ikonboard/ikonboard.cgi">TimeWarp Forum (official)</a> </li> ! <li><a ! href="http://dynamic.gamespy.com/~timewarp/ikonboard//forums.cgi?forum=9">Another TimeWarp Forum</a> </li> <li><a href="http://www.classicgaming.com/starcontrol/timewarp/tbeige.shtm">Team Beige</a> <br>In the --- 116,120 ---- href="http://home.planet.nl/~devil723/timewarp/public_plot/index.htm">TimeWarp Public Plot</a> </li> <li><a ! href="http://timewarp.sourceforge.net/forum/index.php">TimeWarp Forum (official)</a> </li> <li><a href="http://www.classicgaming.com/starcontrol/timewarp/tbeige.shtm">Team Beige</a> <br>In the *************** *** 135,140 **** src="http://sourceforge.net/sflogo.php?group_id=13354" alt="SourceForge Logo" border="0" width="88" height="31"></a> ! <table> </body> ! </html> --- 142,147 ---- src="http://sourceforge.net/sflogo.php?group_id=13354" alt="SourceForge Logo" border="0" width="88" height="31"></a> ! </td></tr></table> </body> ! </html> \ No newline at end of file Index: readme_eng.html =================================================================== RCS file: /cvsroot/timewarp/site/readme_eng.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** readme_eng.html 21 Mar 2004 23:20:59 -0000 1.1 --- readme_eng.html 10 Apr 2004 20:51:06 -0000 1.2 *************** *** 1,288 **** ! <html> ! ! <head> ! <link href="style.css" rel="stylesheet" type="text/css" title="default"/> ! <meta http-equiv="content-type" content="text/html; charset=windows-1251"> ! <meta name="description" content="Homepage of Star Control: Time Warp."> ! <meta name="keywords" content="timewarp SC sc1 sc2 star control uqm the ur-quan masters ur-quan orz spathi masters gob ! opensource game zip orz youbastrd geoman culture20 yurand"> ! <title>TimeWarp</title> ! </head> ! ! <body> ! <div align="center"><center> ! ! <table border="0" cellpadding="0" cellspacing="0"> ! <tr><td align="center"><img border="0" src="logo.png" alt="TimeWarp" width="390" height="150"></td></tr> ! </table> ! ! </center></div> ! ! <p><div class="title"><center>What is the TimeWarp Project?</center></div> ! <p></p> ! <table border="0" width="100%"> ! <td> ! <a href="spathi.jpg"><img src="spathi.jpg" alt="spathi" width="280" height="300" border="1"></a> ! <td> ! Once upon a time there were Fred Ford and Paul Reiche III, who created two ! epic games of the Star Control saga: the first one, and the second one, ! which became the greatest game in the quadrant. They were working for a ! little company called Accolade. Then their games succeeded and Accolade ! became a big company. That is, a BIG company. (please excuse us for any ! "minor" historical errors in this document) ! ! They lived happily ever after, until Accolade were tricked by the Umgah to ! dump Fred Ford and Paul Reiche III, and make their own third sequel to the ! series which had absolutely nothing to do with the previous ones, and shamed ! the honorable title of Star Control, which had resonated deeply into the ! hearts of each and every one of us. The Umgah told Accolade this would make ! it a better game. It is uncertain how they managed to make them buy that ! crap, but it is believed the Dnyarri had something to do with it. Anyway... ! ! We, the loyal followers and believers in the path set by the ancient ones, ! have vowed to restore the true name of Star Control, and cleanse the shame ! caused by Accolade's sequel. However, we do not seek to harm our beloved ! brothers in Accolade or to dishonor them by doing this. Therefore, we shall ! make this sequel available to all who wish to download it and have the ! bandwidth. ! ! We hope we will achieve these goals, and create a sequel that will match, ! and IF possible, accede the level of sarcastic humor, witty dialog, and ! overall challenge of Star Control II. ! </table></p> ! ! <h2><center>BUG REPORTS</center></h2> ! <p> ! </p> ! ! <p> ! Only beta release exist now. First, it means that if you play the game you're an beta tester. Be proud. Second, it means that the ! game is likely to crash with great frequency. Upon finding a problem, ! we'd like you to report it, but before you do, please do the following: ! ! <ul> ! <li> Try to isolate what causes it: "Crashes with a null dereference ! about half the time when firing and taunting with a Pkunk" is better ! than "Melee doesn't work." If the game crashes, notice what error ! is produced. </li> ! ! <li>Go to the bug database <a href="http://bugs.cs.iupui.edu/cgi-bin/bugzilla/">TimeWarp Bugzilla</a> ! and post a report of the problem there. Search the database first if ! it has been already posted; if we get many duplicate reports, processing ! them eats our time from actual development. If it's been reported, and ! you have more information, feel free to confirm that you've reproduced it ! by adding a comment to the report. If ten people have already confirmed it, ! though, it's probably best to treat it as duly reported.</li> ! ! <li> In the case of a crash, a stack trace can be very helpful for us too. ! If you don't know what a stack trace is, don't worry about it.</li> ! ! <li>If your issue is more like "support request" than bug report and you ! want help from other users, then posting it to our forum might be ! more appropriate:<a href="http://dynamic.gamespy.com/~timewarp/ikonboard/ikonboard.cgi">TimeWarp Forum</a></li> ! </ul> ! </p> ! ! <h2><center>GAME TYPES</center></h2> ! <div class="title"><center>GOB</center></div> ! <p> ! </p> ! ! ! <ul> ! <li><b>What is Gob?</b><br> ! <p> ! Gob is like a cross between Asteroids, Life-Force, and Star Control. ! It's the game of survival with custom ship upgrades and simple quests. ! </p> ! </li> ! <li><b>How do I start Gob?</b><br> ! <p> ! Run twwin.exe or timewarp. Click on the "Extended Menu" button. Click on the "Play Game" button. ! Click on the "Gob" button. ! </p> ! </li> ! <li><b>What is the goal of Gob?</b><br> ! <p></p> ! <ul> ! <li>Avoid dieing.</li> ! <li>Try to get as bad-ass a ship as you can.</li> ! <li>Kill lots of enemies.</li> ! <li>Complite quests</li> ! </ul> ! <p> ! If you survive for long enough and accumulate enough wealth, you will ! eventually be able to purchase the "Hyper Dynamo" upgrade. Once you ! get that, you can basically consider yourself to have won the game. ! Try to win Gob with as many different ships as you can. ! </p> ! <li><b>What are the controls in Gob?</b><br> ! <p> ! The keyboard controls for config 0 in TimeWarp ! </p> ! </li> ! <li><b>What can I do in Gob?</b><br> ! <p></p> ! <ul> ! <li>You can fly around in a really big map (MUCH larger than a normal melee).</li> ! <li>You can kill enemy ships. They appear randomly.</li> ! <li>You can visit space stations. They orbit planets.</li> ! <li>Complite various quests</li> ! </ul> ! <p> ! </p> ! </li> ! <li><b>What can I do at space stations?</b><br> ! <p></p> ! <ul> ! <li>You can buy upgrades for your ship.</li> ! <li>You can buy a new ship. You automatically sell your old ship when you do so.</li> ! <li>You can repair your ship.</li> ! <li>You can speak with commander.</li> ! </ul> ! <p> ! </p> ! </li> ! <li><b>What starbases are there? What are the differences between them?</b><br> ! <p> ! There are 4 starbases of 4 types (though there are only 3 different ! starbase graphics... ! They are located at random locations, except for one which starts out next ! to you, at 12000x12000. Each type of starbase sells a specific type of ship, ! either Supox, Orz, Kohr-Ah, or Utwig. Some starbases may also sell unique upgrades only available there. ! </p> ! </li> ! <li><b>What upgrades are available.</b><br> ! <p> ! There are a number of generic upgrades that are available for most ! types of ships. ! </p> ! <p> ! Each purchasable ship type has a number of ship specific upgrades ! available for it, including at least one special ship specific upgrade. ! Most special ship specific upgrades can only be purchased once. ! </p> ! <p> ! There are also a number of very special upgrades. These can ! usually be purchased for any ship type, but only at certain ! starbases. Most of these are very expensive. Some can only be ! purchased when certain conditions are met. ! </p> ! <p> ! Most upgrades are lost when your ship is sold (although they add ! to the sale value of your ship). ! </p> ! <p> ! <b>These upgrades are available for all ships:</b> ! </p> ! <table> ! <tr><td>Crewpod</td><td>Increases your max. crew by 2. You cannot exceed 42.</td></tr> ! <tr><td>Battery</td><td>Increases your max. battery by 2. You cannot exceed 42.</td></tr> ! <tr><td>Thruster Upgrade</td><td>Increases your max. speed by a lot, and your acceleration by a little.</td></tr> ! <tr><td>Control Jet Upgrade</td><td>Increases your turn rate by a lot, and your acceleration by a little.</td></tr> ! <tr><td>Dynamo</td><td>Increases your battery recovery rate.</td></tr> ! </table> ! <p><b>These upgrades are available for Supoxi only:</b></p> ! <table> ! <tr><td>Glob Hurler Upgrade</td><td>Increase your max range by a medium amount, and your projectile velocity by a little.</td></tr> ! <tr><td>Glob Former Upgrade</td><td>Increase the damage your gun inflicts by 1, and the battery you require to shoot by a lot. ! Don't buy this a second time unless you have tons of dynamos (5-8), and don't buy it a ! third time unless you have gazzillions of dynamos (12-21).</td></tr> ! <tr><td>BLADE Upgrade</td><td>???</td></tr> ! </table> ! ! <p><b>These upgrades are available for Orz only:</b></p> ! <table> ! <tr><td>Missile Upgrade</td><td>Improves your missiles, both range and damage. It also makes them cost more battery to shoot.</td></tr> ! <tr><td>Marine Armor Upgrade</td><td>Improves the max. speed and acceleration of your space marines.</td></tr> ! <tr><td>Absoption</td><td>???</td></tr> ! </table> ! ! <p><b>These upgrades are available for Kohr-Ah only:</b></p> ! <table> ! <tr><td>Shuriken Sharpness</td><td>Increases damage inflicted by blades.</td></tr> ! <tr><td>Shuriken Speed</td><td>Increases the velocity of blades.</td></tr> ! <tr><td>FRIED Range</td><td>Increases the range & velocity of F.R.I.E.D. This upgrade can only be purchased once.</td></tr> ! <tr><td>FRIED Damage</td><td>Increases the damage dealt by F.R.I.E.D. This upgrade can only be purchased once.</td></tr> ! </table> ! ! <p><b>These upgrades are available for Utwig only:</b></p> ! <table> ! <tr><td>Bolt Regulator</td><td>Increase maximum range</td></tr> ! <tr><td>Bolt Charger</td><td>Increase damage inflicted. Also slows your rate of fire.</td></tr> ! <tr><td>Bolt Generator</td><td>Speeds up your rate of fire</td></tr> ! <tr><td>Mask of Honest Demeanor</td><td>???</td></tr> ! <tr><td>Mask of Elephantine Fortitude</td><td>???</td></tr> ! </table> ! <p>(note that you are only allowed to purchase one mask)</p> ! ! <p> ! These very special upgrades may be available. Some will be hidden, ! some will not be available, some may not be available until certain ! conditions are met. Most are extremely valuable. ! </p> ! <table> ! <tr><td>Planet Locator</td><td>Keeps you from getting lost.</td></tr> ! <tr><td>Divine Favor</td><td>???</td></tr> ! <tr><td>External Defense System</td><td>???</td></tr> ! <tr><td>Devil Protects His Own</td><td>???</td></tr> ! <tr><td>Hyper Dynamo</td><td>???</td></tr> ! <tr><td>Rainbow Abyss</td><td>???</td></tr> ! </table> ! <p></p> ! </li> ! ! <li><b>What enemies are possible in Gob? How much do you get for killing them?</b><br> ! <p></p> ! <table> ! <tr><td>Special</td></tr> ! <tr><td></td><td>Asteroid</td><td>1 buckazoid</td></tr> ! <tr><td>Weak</td></tr> ! <tr><td></td><td>Thraddash Torch</td><td>1 starbuck</td></tr> ! <tr><td></td><td>Zof-Fot-Pik Stinger</td><td>1 starbuck</td></tr> ! <tr><td></td><td>Shofixti Scout</td><td>1 starbuck</td></tr> ! <tr><td></td><td>Drax Griphon</td><td>1 starbuck</td></tr> ! <tr><td>Moderate</td></tr> ! <tr><td></td><td>Kterbi Saber</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Kahr Boomerang</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Ilwrath Spider</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Syreen Penetrator</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Urquan Dreadnought</td><td>3 starbucks</td></tr> ! <tr><td></td><td>Lk Sanctorum</td><td>3 starbucks</td></tr> ! <tr><td>Tough</td></tr> ! <tr><td></td><td>Mmmrnhrmmm Transformer</td><td>3 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Druuge Mauler</td><td>3 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Yehat Terminator</td><td>4 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Earthling Cruiser</td><td>4 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Herald Exterminator</td><td>4 starbucks, 2 buckazoid</td></tr> ! <tr><td></td><td>Virtao Limb</td><td>4 starbucks, 2 buckazoid</td></tr> ! <tr><td>Nasty</td></tr> ! <tr><td></td><td>Ploxis Plunderer</td><td>5 starbucks, 3 buckazoid</td></tr> ! <tr><td></td><td>Narool Lurker</td><td>5 starbucks, 3 buckazoid</td></tr> ! </table> ! <p></p> ! </li> ! <li><b>What is the difficulty of the enemies based upon? And the cost of the upgrades?</b><br> ! ! <p> ! The type and frequency of enemy spawning is based upon the time you have ! been alive and the number of enemies currently alive. The cost of the ! upgrades is based upon what upgrades you already have, and upon what type ! of ship you have. ! </p> ! <p></p> ! </li> ! <li><b>Why is Gob so addictive?</b><br> ! <p></p> ! </li> ! </ul> ! ! <p align="left"><font size="3"><strong>this page is hosted by</strong></font></p> ! <table border="0" cellpadding="0" cellspacing="0" width="100%"> ! <tr><td align="left"><a href="http://sourceforge.net"><img ! src="http://sourceforge.net/sflogo.php?group_id=13354" ! alt="SourceForge Logo" border="0" width="88" height="31"></a> ! <table> ! ! </body> ! </html> --- 1,385 ---- ! <html> ! ! <head> ! <link href="style.css" rel="stylesheet" type="text/css" title="default"/> ! <meta http-equiv="content-type" content="text/html; charset=windows-1251"> ! <meta name="description" content="Homepage of Star Control: Time Warp."> ! <meta name="keywords" content="timewarp SC sc1 sc2 star control uqm the ur-quan masters ur-quan orz spathi masters gob ! opensource game zip orz youbastrd geoman culture20 yurand"> ! <title>TimeWarp</title> ! </head> ! ! <body> ! <div align="center"><center> ! ! <table border="0" cellpadding="0" cellspacing="0"> ! <tr><td align="center"><img border="0" src="logo.png" alt="TimeWarp" width="390" height="150"></td></tr> ! </table> ! ! </center></div> ! ! <p><div class="title"><center>What is the TimeWarp Project?</center></div> ! <p></p> ! <table border="0" width="100%"> ! <tr> ! <td> ! <a href="spathi.jpg"><img src="spathi.jpg" alt="spathi" width="280" height="300" border="1"></a></td> ! <td> ! <p> ! Once upon a time there were Fred Ford and Paul Reiche III, who created two ! epic games of the Star Control saga: the first one, and the second one, ! which became the greatest game in the quadrant. They were working for a ! little company called Accolade. Then their games succeeded and Accolade ! became a big company. That is, a BIG company. (please excuse us for any ! "minor" historical errors in this document) ! </p> ! <p> ! They lived happily ever after, until Accolade were tricked by the Umgah to ! dump Fred Ford and Paul Reiche III, and make their own third sequel to the ! series which had absolutely nothing to do with the previous ones, and shamed ! the honorable title of Star Control, which had resonated deeply into the ! hearts of each and every one of us. The Umgah told Accolade this would make ! it a better game. It is uncertain how they managed to make them buy that ! crap, but it is believed the Dnyarri had something to do with it. Anyway... ! </p> ! <p> ! We, the loyal followers and believers in the path set by the ancient ones, ! have vowed to restore the true name of Star Control, and cleanse the shame ! caused by Accolade's sequel. However, we do not seek to harm our beloved ! brothers in Accolade or to dishonor them by doing this. Therefore, we shall ! make this sequel available to all who wish to download it and have the ! bandwidth. ! </p> ! <p> ! We hope we will achieve these goals, and create a sequel that will match, ! and IF possible, accede the level of sarcastic humor, witty dialog, and ! overall challenge of Star Control II. ! </p> ! </td></tr> ! </table></p> ! ! <h2><center>BUG REPORTS</center></h2> ! <p> ! </p> ! ! <p> ! Only beta release exist now. First, it means that if you play the game you're an beta tester. Be proud. Second, it means that the ! game is likely to crash with great frequency. Upon finding a problem, ! we'd like you to report it, but before you do, please do the following: ! ! <ul> ! <li> Try to isolate what causes it: "Crashes with a null dereference ! about half the time when firing and taunting with a Pkunk" is better ! than "Melee doesn't work." If the game crashes, notice what error ! is produced. </li> ! ! <li>Go to the bug database <a href="http://bugs.cs.iupui.edu/cgi-bin/bugzilla/">TimeWarp Bugzilla</a> ! and post a report of the problem there. Search the database first if ! it has been already posted; if we get many duplicate reports, processing ! them eats our time from actual development. If it's been reported, and ! you have more information, feel free to confirm that you've reproduced it ! by adding a comment to the report. If ten people have already confirmed it, ! though, it's probably best to treat it as duly reported.</li> ! ! <li> In the case of a crash, a stack trace can be very helpful for us too. ! If you don't know what a stack trace is, don't worry about it.</li> ! ! <li>If your issue is more like "support request" than bug report and you ! want help from other users, then posting it to our forum might be ! more appropriate:<a href="http://timewarp.sourceforge.net/forum/index.php">TimeWarp Forum</a></li> ! </ul> ! </p> ! ! <h2><center>GAME TYPES</center></h2> ! <div class="title"><center>GOB</center></div> ! <p> ! </p> ! ! ! <ul> ! <li><b>What is Gob?</b><br> ! <p> ! Gob is like a cross between Asteroids, Life-Force, and Star Control. ! It's the game of survival with custom ship upgrades and simple quests. ! </p> ! </li> ! <li><b>How do I start Gob?</b><br> ! <p> ! Run twwin.exe or timewarp. Click on the "Extended Menu" button. Click on the "Play Game" button. ! Click on the "Gob" button. ! </p> ! </li> ! <li><b>What is the goal of Gob?</b><br> ! <p></p> ! <ul> ! <li>Avoid dieing.</li> ! <li>Try to get as bad-ass a ship as you can.</li> ! <li>Kill lots of enemies.</li> ! <li>Complite quests</li> ! </ul> ! <p> ! If you survive for long enough and accumulate enough wealth, you will ! eventually be able to purchase the "Hyper Dynamo" upgrade. Once you ! get that, you can basically consider yourself to have won the game. ! Try to win Gob with as many different ships as you can. ! </p> ! <li><b>What are the controls in Gob?</b><br> ! <p> ! The keyboard controls for config 0 in TimeWarp ! </p> ! </li> ! <li><b>What can I do in Gob?</b><br> ! <p></p> ! <ul> ! <li>You can fly around in a really big map (MUCH larger than a normal melee).</li> ! <li>You can kill enemy ships. They appear randomly.</li> ! <li>You can visit space stations. They orbit planets.</li> ! <li>Complite various quests</li> ! </ul> ! <p> ! </p> ! </li> ! <li><b>What can I do at space stations?</b><br> ! <p></p> ! <ul> ! <li>You can buy upgrades for your ship.</li> ! <li>You can buy a new ship. You automatically sell your old ship when you do so.</li> ! <li>You can repair your ship.</li> ! <li>You can speak with commander.</li> ! </ul> ! <p> ! </p> ! </li> ! <li><b>What starbases are there? What are the differences between them?</b><br> ! <p> ! There are 4 starbases of 4 types (though there are only 3 different ! starbase graphics... ! They are located at random locations, except for one which starts out next ! to you, at 12000x12000. Each type of starbase sells a specific type of ship, ! either Supox, Orz, Kohr-Ah, or Utwig. Some starbases may also sell unique upgrades only available there. ! </p> ! </li> ! <li><b>What upgrades are available.</b><br> ! <p> ! There are a number of generic upgrades that are available for most ! types of ships. ! </p> ! <p> ! Each purchasable ship type has a number of ship specific upgrades ! available for it, including at least one special ship specific upgrade. ! Most special ship specific upgrades can only be purchased once. ! </p> ! <p> ! There are also a number of very special upgrades. These can ! usually be purchased for any ship type, but only at certain ! starbases. Most of these are very expensive. Some can only be ! purchased when certain conditions are met. ! </p> ! <p> ! Most upgrades are lost when your ship is sold (although they add ! to the sale value of your ship). ! </p> ! <p> ! <b>These upgrades are available for all ships:</b> ! </p> ! <table> ! <tr><td>Crewpod</td><td>Increases your max. crew by 2. You cannot exceed 42.</td></tr> ! <tr><td>Battery</td><td>Increases your max. battery by 2. You cannot exceed 42.</td></tr> ! <tr><td>Thruster Upgrade</td><td>Increases your max. speed by a lot, and your acceleration by a little.</td></tr> ! <tr><td>Control Jet Upgrade</td><td>Increases your turn rate by a lot, and your acceleration by a little.</td></tr> ! <tr><td>Dynamo</td><td>Increases your battery recovery rate.</td></tr> ! </table> ! <p><b>These upgrades are available for Supoxi only:</b></p> ! <table> ! <tr><td>Glob Hurler Upgrade</td><td>Increase your max range by a medium amount, and your projectile velocity by a little.</td></tr> ! <tr><td>Glob Former Upgrade</td><td>Increase the damage your gun inflicts by 1, and the battery you require to shoot by a lot. ! Don't buy this a second time unless you have tons of dynamos (5-8), and don't buy it a ! third time unless you have gazzillions of dynamos (12-21).</td></tr> ! <tr><td>BLADE Upgrade</td><td>???</td></tr> ! </table> ! <p><b>These upgrades are available for Orz only:</b></p> ! <table> ! <tr><td>Missile Upgrade</td><td>Improves your missiles, both range and damage. It also makes them cost more battery to shoot.</td></tr> ! <tr><td>Marine Armor Upgrade</td><td>Improves the max. speed and acceleration of your space marines.</td></tr> ! <tr><td>Absoption</td><td>???</td></tr> ! </table> ! ! <p><b>These upgrades are available for Kohr-Ah only:</b></p> ! <table> ! <tr><td>Shuriken Sharpness</td><td>Increases damage inflicted by blades.</td></tr> ! <tr><td>Shuriken Speed</td><td>Increases the velocity of blades.</td></tr> ! <tr><td>FRIED Range</td><td>Increases the range & velocity of F.R.I.E.D. This upgrade can only be purchased once.</td></tr> ! <tr><td>FRIED Damage</td><td>Increases the damage dealt by F.R.I.E.D. This upgrade can only be purchased once.</td></tr> ! </table> ! ! <p><b>These upgrades are available for Utwig only:</b></p> ! <table> ! <tr><td>Bolt Regulator</td><td>Increase maximum range</td></tr> ! <tr><td>Bolt Charger</td><td>Increase damage inflicted. Also slows your rate of fire.</td></tr> ! <tr><td>Bolt Generator</td><td>Speeds up your rate of fire</td></tr> ! <tr><td>Mask of Honest Demeanor</td><td>???</td></tr> ! <tr><td>Mask of Elephantine Fortitude</td><td>???</td></tr> ! </table> ! <p>(note that you are only allowed to purchase one mask)</p> ! ! <p> ! These very special upgrades may be available. Some will be hidden, ! some will not be available, some may not be available until certain ! conditions are met. Most are extremely valuable. ! </p> ! <table> ! <tr><td>Planet Locator</td><td>Keeps you from getting lost.</td></tr> ! <tr><td>Divine Favor</td><td>???</td></tr> ! <tr><td>External Defense System</td><td>???</td></tr> ! <tr><td>Devil Protects His Own</td><td>???</td></tr> ! <tr><td>Hyper Dynamo</td><td>???</td></tr> ! <tr><td>Rainbow Abyss</td><td>???</td></tr> ! </table> ! <p></p> ! </li> ! ! <li><b>What enemies are possible in Gob? How much do you get for killing them?</b><br> ! <p></p> ! <table> ! <tr><td>Special</td></tr> ! <tr><td></td><td>Asteroid</td><td>1 buckazoid</td></tr> ! <tr><td>Weak</td></tr> ! <tr><td></td><td>Thraddash Torch</td><td>1 starbuck</td></tr> ! <tr><td></td><td>Zof-Fot-Pik Stinger</td><td>1 starbuck</td></tr> ! <tr><td></td><td>Shofixti Scout</td><td>1 starbuck</td></tr> ! <tr><td></td><td>Drax Griphon</td><td>1 starbuck</td></tr> ! <tr><td>Moderate</td></tr> ! <tr><td></td><td>Kterbi Saber</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Kahr Boomerang</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Ilwrath Spider</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Syreen Penetrator</td><td>2 starbucks</td></tr> ! <tr><td></td><td>Urquan Dreadnought</td><td>3 starbucks</td></tr> ! <tr><td></td><td>Lk Sanctorum</td><td>3 starbucks</td></tr> ! <tr><td>Tough</td></tr> ! <tr><td></td><td>Mmmrnhrmmm Transformer</td><td>3 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Druuge Mauler</td><td>3 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Yehat Terminator</td><td>4 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Earthling Cruiser</td><td>4 starbucks, 1 buckazoid</td></tr> ! <tr><td></td><td>Herald Exterminator</td><td>4 starbucks, 2 buckazoid</td></tr> ! <tr><td></td><td>Virtao Limb</td><td>4 starbucks, 2 buckazoid</td></tr> ! <tr><td>Nasty</td></tr> ! <tr><td></td><td>Ploxis Plunderer</td><td>5 starbucks, 3 buckazoid</td></tr> ! <tr><td></td><td>Narool Lurker</td><td>5 starbucks, 3 buckazoid</td></tr> ! </table> ! <p></p> ! </li> ! <li><b>What is the difficulty of the enemies based upon? And the cost of the upgrades?</b><br> ! ! <p> ! The type and frequency of enemy spawning is based upon the time you have ! been alive and the number of enemies currently alive. The cost of the ! upgrades is based upon what upgrades you already have, and upon what type ! of ship you have. ! </p> ! <p></p> ! </li> ! <li><b>Why is Gob so addictive?</b><br> ! <p></p> ! </li> ! </ul> ! ! <div class="title"><center>gflmelee</center></div> ! <p> ! </p> ! ! <p> ! Single player melee between two fleets. ! </p> ! <p> ! Player and enemy fleets are defined in the ini file. Set -1 there to choose ! a random fleet from the available possibilities. If you define a new fleet, ! don't forget to set the values of Nships and Nalliances. ! </p> ! <p> ! You can toggle certain options. Currently the keys are hard-coded to: ! </p> ! <table> ! <tr><td>C,V</td><td>choose next ship in your fleet</td></tr> ! <tr><td>A</td><td>fleet display</td></tr> ! <tr><td>S</td><td>show stats while S is pressed</td></tr> ! <tr><td>D</td><td>healthbars</td></tr> ! <tr><td>F</td><td>ship panel</td></tr> ! <tr><td>R</td><td>radar mode</td></tr> ! <tr><td>R+left shift</td><td>relocate radar (left/mid/right) on ! the screen</td></tr> ! </table> ! ! <p> ! Use the target keys to select prev/ next/ closest target. ! </p> ! <p> ! Stats about victims are only kept to a maximum of 32 kills per ! ship, and for a maximum of 128 different ships. ! </p> ! ! <div class="title"><center>Vanguard</center></div> ! <p> ! </p> ! ! <p> ! Presently Vanguard (VG) is just a "Hunt down the enemy team" kinda game. ! Far more is planned but no coders are enlisted to the project at this moment.. ! (For more information on the intended scope of VG contact "Mor...@dd...") ! </p> ! <p> ! How to play VG thus far.. Well to aid you in your hunt you get 2 nice little toys... ! </p> ! <p> ! -A Primative Hyper Space drive: (Press * when your batt is full and then start driving). It will increase your speed by about 75 velocity units. (at least I think so, also I think it boosts your accel rate) ! </p> ! <p> ! -You also get an ultra accurate real-time Radar, enabling you to see EVERYTHING from a moons around an orbiting planet, to the shots your opponent fired at you. ! </p> ! ! <p> Keys:</p> ! <table> ! <TR><TD>Tab</TD><td>toggle focus map center / focus player (default ! is map center for some reason)</td></TR> ! <tr><TD>Page up and down (not on the keypad)</TD> ! <td>zoom you in and out.</td></tr> ! </table> ! <p> ! That's it.. The key bindings can be found in Vanguard.ini ! </p> ! <p> ! ENJOY! ! </p> ! ! <div class="title"><center>Melee in solar system</center></div> ! <p> ! </p> ! ! <p> ! A normal melee fight inside a complete solar system with sun, planets ! and moons! ! </p> ! <p> ! to play it just enter the extended menu and choose ! "Melee in solar system (INI)" ! the (INI) for those who wonder symbolize that the game come with an ! .ini file for you to change! ! Through the ini you can change the number of planets, their radius and ! more, explanations are added to the ini file. ! </p> ! <p> ! Enjoy! ! </p> ! <p> ! Solar system melee was coded by Corona688 and UAF, all right reserved ! to Crimson cooperation(TM). ! </p> ! ! <p align="left"><font size="3"><strong>this page is hosted by</strong></font></p> ! <table border="0" cellpadding="0" cellspacing="0" width="100%"> ! <tr><td align="left"><a href="http://sourceforge.net"><img ! src="http://sourceforge.net/sflogo.php?group_id=13354" ! alt="SourceForge Logo" border="0" width="88" height="31"></a> ! </td></tr></table> ! ! </body> ! </html> |
From: Yura S. <yu...@us...> - 2004-04-10 21:04:37
|
Update of /cvsroot/timewarp/source/other In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17518/source/other Modified Files: ttf.cpp Log Message: Updating makefile for using alfont and masking libraries Index: ttf.cpp =================================================================== RCS file: /cvsroot/timewarp/source/other/ttf.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ttf.cpp 26 Mar 2004 16:55:43 -0000 1.5 --- ttf.cpp 10 Apr 2004 20:51:06 -0000 1.6 *************** *** 78,82 **** // for debugging (copied from allegro) ! static void color_destroy_font(FONT* f) { FONT_COLOR_DATA* cf; --- 78,82 ---- // for debugging (copied from allegro) ! void color_destroy_font(FONT* f) { FONT_COLOR_DATA* cf; |
From: Yura S. <yu...@us...> - 2004-04-10 21:04:37
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17518 Modified Files: makefile Log Message: Updating makefile for using alfont and masking libraries Index: makefile =================================================================== RCS file: /cvsroot/timewarp/makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** makefile 21 Mar 2004 23:20:59 -0000 1.15 --- makefile 10 Apr 2004 20:51:05 -0000 1.16 *************** *** 27,31 **** source/gamex/dialogs source/jpgalleg ! FILELIST= ${shell find source -type f "(" -name "*.c" -o -name "*.cpp" ")"} BASE_NAMES = $(basename $(notdir $(FILELIST))) --- 27,31 ---- source/gamex/dialogs source/jpgalleg ! FILELIST= ${shell find source -type f "(" -name "*.c" -o -name "*.cpp" ")"| grep -v masking[/] | grep -v alfont[/]} BASE_NAMES = $(basename $(notdir $(FILELIST))) *************** *** 70,78 **** endif ! CFLAGS += -I./source #CFLAGS += ${addprefix -I./, $(VPATH)} ! LIBS += -llualib -llua OBJS = $(addprefix $(OBJDIR)/,$(POBJS)) --- 70,78 ---- endif ! CFLAGS += -I./source #CFLAGS += ${addprefix -I./, $(VPATH)} ! LIBS += -llualib -llua -lalfont -lmasking OBJS = $(addprefix $(OBJDIR)/,$(POBJS)) |
manually typing; message was too big Update of /cvsroot/timewarp/include/MASkinG In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4626/include/MASkinG Added Files: accelerator.h animator.h bitmap.h button.h checkbox.h clearscreen.h color.h colorsel.h combobox.h cursor.h defines.h dialog.h doublebuffer.h drs.h editbox.h error.h fileselect.h font.h fps.h gldialog.h gldriver.h global.h glviewport.h groupbox.h hypertext.h image.h label.h license.txt listbox.h menu.h messagebox.h mouse.h pageflipping.h panel.h point.h progress.h radiobutton.h rect.h sample.h screenupdate.h scrollbox.h scroller.h scrollobj.h separator.h settings.h shortcut.h size.h skin.h slider.h spinbox.h splitter.h tabpanel.h textarea.h timer.h tooltip.h triplebuffer.h wallpaper.h widget.h window.h Log Message: adding MASkinG GUI library; adding AlFont library; updating VC project file to use these sources Thanks, youBastrd! aka Paul Forest you...@ro... http://publish.uwo.ca/~pjforest/ This sounds creepy, please go on. |
manually typing this up, message was too big to send as-is. Update of /cvsroot/timewarp/source/masking In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4626/source/masking Added Files: accelerator.cpp animator.cpp bitmap.cpp button.cpp checkbox.cpp clearscreen.cpp color.cpp colorsel.cpp combobox.cpp cursor.cpp dialog.cpp doublebuffer.cpp drs.cpp editbox.cpp error.cpp fileselect.cpp font.cpp fps.cpp gldialog.cpp gldriver.cpp glviewport.cpp groupbox.cpp hypertext.cpp image.cpp label.cpp listbox.cpp masking.cpp menu.cpp messagebox.cpp mouse.cpp pageflipping.cpp panel.cpp point.cpp progress.cpp radiobutton.cpp rect.cpp sample.cpp screenupdate.cpp scrollbox.cpp scroller.cpp scrollobj.cpp separator.cpp settings.cpp shortcut.cpp size.cpp skin.cpp slider.cpp spinbox.cpp splitter.cpp tabpanel.cpp textarea.cpp timer.cpp tooltip.cpp triplebuffer.cpp wallpaper.cpp widget.cpp window.cpp Log Message: adding MASkinG GUI library; adding AlFont library; updating VC project file to use these sources Thanks, youBastrd! aka Paul Forest you...@ro... http://publish.uwo.ca/~pjforest/ This sounds creepy, please go on. |
From: Paul F. <you...@us...> - 2004-04-06 20:32:57
|
Update of /cvsroot/timewarp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4626 Modified Files: client.ini twwin.dsp Log Message: adding MASkinG GUI library; adding AlFont library; updating VC project file to use these sources Index: client.ini =================================================================== RCS file: /cvsroot/timewarp/client.ini,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** client.ini 26 Mar 2004 18:22:20 -0000 1.32 --- client.ini 6 Apr 2004 20:19:34 -0000 1.33 *************** *** 30,37 **** [Sound] ! SoundOn = 0 ! MusicOn = 0 ! SoundVolume = 174 ! MusicVolume = 176 Music = melee.dat#MELEEMUS_MOD ;melee.dat = #PLANETMUSIC_MOD , #MELEEMUS_MOD --- 30,37 ---- [Sound] ! SoundOn = 2 ! MusicOn = 2 ! SoundVolume = 30 ! MusicVolume = 42 Music = melee.dat#MELEEMUS_MOD ;melee.dat = #PLANETMUSIC_MOD , #MELEEMUS_MOD Index: twwin.dsp =================================================================== RCS file: /cvsroot/timewarp/twwin.dsp,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** twwin.dsp 5 Mar 2004 17:51:28 -0000 1.43 --- twwin.dsp 6 Apr 2004 20:19:35 -0000 1.44 *************** *** 44,48 **** # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c ! # ADD CPP /nologo /MT /W3 /GR /GX /Zi /O1 /Op /Ob2 /I "./include" /I "./source" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "__i386__" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 --- 44,48 ---- # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GR /GX /Zi /O1 /Op /Ob2 /I "./include" /I "./source" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "__i386__" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 *************** *** 1337,1340 **** --- 1337,1580 ---- # End Source File # End Group + # Begin Group "MASkinG" + + # PROP Default_Filter "" + # Begin Source File + + SOURCE=.\source\masking\accelerator.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\animator.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\bitmap.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\button.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\checkbox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\clearscreen.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\color.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\colorsel.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\combobox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\cursor.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\dialog.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\doublebuffer.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\drs.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\editbox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\error.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\fileselect.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\font.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\fps.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\gldialog.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\gldriver.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\glviewport.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\groupbox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\hypertext.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\image.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\label.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\listbox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\masking.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\menu.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\messagebox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\mouse.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\pageflipping.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\panel.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\point.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\progress.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\radiobutton.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\rect.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\sample.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\screenupdate.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\scrollbox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\scroller.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\scrollobj.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\separator.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\settings.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\shortcut.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\size.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\skin.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\slider.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\spinbox.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\splitter.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\tabpanel.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\textarea.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\timer.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\tooltip.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\triplebuffer.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\wallpaper.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\widget.cpp + # End Source File + # Begin Source File + + SOURCE=.\source\masking\window.cpp + # End Source File + # End Group + # Begin Group "AlFont" + + # PROP Default_Filter "" + # Begin Source File + + SOURCE=.\source\alfont\alfont.c + # End Source File + # End Group # Begin Source File *************** *** 1812,1815 **** --- 2052,2299 ---- # PROP Default_Filter "" + # Begin Group "MASkinG No. 1" + + # PROP Default_Filter "" + # Begin Source File + + SOURCE=.\include\MASkinG\accelerator.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\animator.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\bitmap.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\button.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\checkbox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\clearscreen.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\color.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\colorsel.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\combobox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\cursor.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\defines.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\dialog.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\doublebuffer.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\drs.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\editbox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\error.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\fileselect.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\font.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\fps.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\gldialog.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\gldriver.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\global.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\glviewport.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\groupbox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\hypertext.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\image.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\label.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\listbox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\menu.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\messagebox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\mouse.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\pageflipping.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\panel.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\point.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\progress.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\radiobutton.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\rect.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\sample.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\screenupdate.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\scrollbox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\scroller.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\scrollobj.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\separator.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\settings.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\shortcut.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\size.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\skin.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\slider.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\spinbox.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\splitter.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\tabpanel.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\textarea.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\timer.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\tooltip.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\triplebuffer.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\wallpaper.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\widget.h + # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG\window.h + # End Source File + # End Group + # Begin Source File + + SOURCE=.\include\alfont.h + # End Source File + # Begin Source File + + SOURCE=.\include\alfontdll.h + # End Source File # Begin Source File *************** *** 1824,1827 **** --- 2308,2315 ---- SOURCE=.\include\lualib.h # End Source File + # Begin Source File + + SOURCE=.\include\MASkinG.h + # End Source File # End Group # Begin Source File |
From: Paul F. <you...@us...> - 2004-04-06 20:32:31
|
Update of /cvsroot/timewarp/source/alfont In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4626/source/alfont Added Files: alfont.c Log Message: adding MASkinG GUI library; adding AlFont library; updating VC project file to use these sources --- NEW FILE: alfont.c --- /* AllegroFont - a wrapper for FreeType 2 */ /* to render TTF and other font formats with Allegro */ /* FreeType 2 is copyright (c) 1996-2000 */ /* David Turner, Robert Wilhelm, and Werner Lemberg */ /* AllegroFont is copyright (c) 2001, 2002 Javier Gonz lez */ /* See FTL.txt (FreeType License) for license */ // todo (char map null check) #include <allegro.h> #include <stdlib.h> #include <string.h> #include <alfont.h> #include <ft2build.h> #include FT_FREETYPE_H #include FT_GLYPH_H /* structs */ struct ALFONT_FONT { FT_Face face; /* face */ int face_h; /* face height */ int real_face_h; /* real face height */ int face_ascender; /* face ascender */ char *data; /* if loaded from memory, the data chunk */ int data_size; /* and its size */ int ch_spacing; /* extra spacing */ int num_fixed_sizes; /* -1 if scalable, >=0 if fixed */ struct _ALFONT_CACHED_GLYPH { char is_cached; int width, height, aawidth, aaheight; int left, top, aaleft, aatop; int advancex, advancey; int mono_available, aa_available; unsigned char *bmp; unsigned char *aabmp; } *cached_glyphs; /* array to know which glyphs have been cached */ int *fixed_sizes; /* array with the fixed sizes */ }; /* global vars */ static FT_Library ft_library; static int alfont_textmode = 0; static int alfont_inited = 0; /* helpers */ static void _alfont_reget_fixed_sizes(ALFONT_FONT *f) { if (f->num_fixed_sizes < 0) { /* scalable font */ f->fixed_sizes[0] = -1; } else { /* fixed */ int i; for (i = 0; i < f->num_fixed_sizes; i++) { f->fixed_sizes[i] = f->face->available_sizes[i].height; } /* set last one to -1 */ f->fixed_sizes[f->num_fixed_sizes] = -1; } } static void _alfont_uncache_glyphs(ALFONT_FONT *f) { if (f->cached_glyphs) { int i; for (i = 0; i < f->face->num_glyphs; i++) { if (f->cached_glyphs[i].is_cached) { f->cached_glyphs[i].is_cached = 0; if (f->cached_glyphs[i].bmp) { free(f->cached_glyphs[i].bmp); f->cached_glyphs[i].bmp = NULL; } if (f->cached_glyphs[i].aabmp) { free(f->cached_glyphs[i].aabmp); f->cached_glyphs[i].aabmp = NULL; } } } } } static void _alfont_delete_glyphs(ALFONT_FONT *f) { _alfont_uncache_glyphs(f); if (f->cached_glyphs) { free(f->cached_glyphs); f->cached_glyphs = NULL; } } static void _alfont_cache_glyph(ALFONT_FONT *f, int glyph_number) { /* if glyph not cached yet */ if (!f->cached_glyphs[glyph_number].is_cached) { FT_Glyph new_glyph; /* load the font glyph */ FT_Load_Glyph(f->face, glyph_number, FT_LOAD_DEFAULT); FT_Get_Glyph(f->face->glyph, &new_glyph); /* ok, this glyph is now cached */ f->cached_glyphs[glyph_number].is_cached = 1; f->cached_glyphs[glyph_number].mono_available = 0; f->cached_glyphs[glyph_number].aa_available = 0; /* render the mono bmp */ { FT_Bitmap *ft_bmp; FT_Glyph glyph; FT_BitmapGlyph bmp_glyph; FT_Glyph_Copy(new_glyph, &glyph); /* only render glyph if it is not already a bitmap */ if (glyph->format != ft_glyph_format_bitmap) FT_Glyph_To_Bitmap(&glyph, ft_render_mode_mono, NULL, 1); /* the FT rendered bitmap */ bmp_glyph = (FT_BitmapGlyph)glyph; ft_bmp = &bmp_glyph->bitmap; /* save only if the bitmap is really 1 bit */ if (ft_bmp->pixel_mode == ft_pixel_mode_mono) { int memsize; f->cached_glyphs[glyph_number].mono_available = 1; /* set width, height, left, top */ f->cached_glyphs[glyph_number].width = ft_bmp->width; f->cached_glyphs[glyph_number].height = ft_bmp->rows; f->cached_glyphs[glyph_number].left = bmp_glyph->left; f->cached_glyphs[glyph_number].top = bmp_glyph->top; /* allocate bitmap */ memsize = ft_bmp->width * ft_bmp->rows * sizeof(unsigned char); if (memsize > 0) f->cached_glyphs[glyph_number].bmp = malloc(memsize); else f->cached_glyphs[glyph_number].bmp = NULL; /* monochrome drawing */ if (memsize > 0) { unsigned char *outbmp_p = f->cached_glyphs[glyph_number].bmp; unsigned char *bmp_p; int bmp_x, bmp_y, bit; /* copy the FT character bitmap to ours */ bmp_p = ft_bmp->buffer; for (bmp_y = 0; bmp_y < ft_bmp->rows; bmp_y++) { unsigned char *next_bmp_p; next_bmp_p = bmp_p + ft_bmp->pitch; bit = 7; for (bmp_x = 0; bmp_x < ft_bmp->width; bmp_x++) { *outbmp_p = *bmp_p & (1 << bit); outbmp_p++; if (bit == 0) { bit = 7; bmp_p++; } else bit--; } bmp_p = next_bmp_p; } } } FT_Done_Glyph(glyph); } /* render the aa bmp */ { FT_Bitmap *ft_bmp; FT_Glyph glyph; FT_BitmapGlyph bmp_glyph; FT_Glyph_Copy(new_glyph, &glyph); /* only render glyph if it is not already a bitmap */ if (glyph->format != ft_glyph_format_bitmap) FT_Glyph_To_Bitmap(&glyph, ft_render_mode_normal, NULL, 1); /* the FT rendered bitmap */ bmp_glyph = (FT_BitmapGlyph)glyph; ft_bmp = &bmp_glyph->bitmap; /* save only if the bitmap is really 8 bit */ if (ft_bmp->pixel_mode == ft_pixel_mode_grays) { int memsize; f->cached_glyphs[glyph_number].aa_available = 1; /* set width, height, left, top */ f->cached_glyphs[glyph_number].aawidth = ft_bmp->width; f->cached_glyphs[glyph_number].aaheight = ft_bmp->rows; f->cached_glyphs[glyph_number].aaleft = bmp_glyph->left; f->cached_glyphs[glyph_number].aatop = bmp_glyph->top; /* allocate bitmap */ memsize = ft_bmp->width * ft_bmp->rows * sizeof(unsigned char); if (memsize > 0) f->cached_glyphs[glyph_number].aabmp = malloc(memsize); else f->cached_glyphs[glyph_number].aabmp = NULL; /* aa drawing */ if (memsize > 0) { unsigned char *outbmp_p = f->cached_glyphs[glyph_number].aabmp; unsigned char *bmp_p; int bmp_y; unsigned char mul = 256 / ft_bmp->num_grays; /* we set it to 0 because it is faster to test for false */ if (mul == 1) mul = 0; /* copy the FT character bitmap to ours */ bmp_p = ft_bmp->buffer; for (bmp_y = 0; bmp_y < ft_bmp->rows; bmp_y++) { unsigned char *next_bmp_p; next_bmp_p = bmp_p + ft_bmp->pitch; memcpy(outbmp_p, bmp_p, ft_bmp->width * sizeof(unsigned char)); /* we have to change our pixels if the numgrays is not 256 */ if (mul) { unsigned char *p = outbmp_p; unsigned char *p_end = p + ft_bmp->width; for (; p < p_end; p++) *p *= mul; } outbmp_p += ft_bmp->width; bmp_p = next_bmp_p; } } } FT_Done_Glyph(glyph); } f->cached_glyphs[glyph_number].advancex = f->face->glyph->advance.x >> 6; f->cached_glyphs[glyph_number].advancey = f->face->glyph->advance.y >> 6; /* delete the glyph */ FT_Done_Glyph(new_glyph); } } static void _alfont_new_cache_glyph(ALFONT_FONT *f) { int i; if (!f->cached_glyphs) f->cached_glyphs = malloc(f->face->num_glyphs * sizeof(struct _ALFONT_CACHED_GLYPH)); for (i = 0; i < f->face->num_glyphs; i++) { f->cached_glyphs[i].is_cached = 0; f->cached_glyphs[i].bmp = NULL; f->cached_glyphs[i].aabmp = NULL; } } /* API */ int alfont_set_font_size(ALFONT_FONT *f, int h) { int error, test_h, direction; /* check the font doesn't already use that w and h */ if (h == f->face_h) return ALFONT_OK; else if (h <= 0) return ALFONT_ERROR; /* keep changing the size until the real size is not the one */ /* we want */ test_h = h; direction = 0; while (1) { int real_height; error = FT_Set_Pixel_Sizes(f->face, 0, test_h); if (error) break; /* compare real height with asked height */ real_height = abs(f->face->size->metrics.ascender >> 6) + abs(f->face->size->metrics.descender >> 6); if (real_height == h) { /* we found the wanted height */ break; } /* check the direction */ if (direction == 0) { /* direction still not set */ if (real_height > h) direction = -1; else direction = 1; } /* check we didn't overpass it */ else if ((direction > 0) && (real_height > h)) { /* decrease one and found */ test_h--; FT_Set_Pixel_Sizes(f->face, 0, test_h); break; } /* check we didn't surpass it */ else if ((direction < 0) && (real_height < h)) { break; } test_h += direction; /* check we arent at 0 */ if (test_h <= 0) { error = TRUE; break; } } if (!error) { _alfont_uncache_glyphs(f); f->face_h = h; f->real_face_h = test_h; f->face_ascender = f->face->size->metrics.ascender >> 6; return ALFONT_OK; } else { FT_Set_Pixel_Sizes(f->face, 0, f->real_face_h); return ALFONT_ERROR; } } int alfont_get_font_height(ALFONT_FONT *f) { return f->face_h; } void alfont_exit(void) { if (alfont_inited) { alfont_inited = 0; FT_Done_FreeType(ft_library); memset(&ft_library, 0, sizeof(ft_library)); } } int alfont_init(void) { if (alfont_inited) return 0; else { int error; memset(&ft_library, 0, sizeof(ft_library)); error = FT_Init_FreeType(&ft_library); if (!error) alfont_inited = 1; return error; } } ALFONT_FONT *alfont_load_font(const char *filepathname) { int error; /* try to allocate the memory */ ALFONT_FONT *font = malloc(sizeof(ALFONT_FONT)); if (font == NULL) return NULL; /* clear the struct */ memset(font, 0, sizeof(ALFONT_FONT)); font->cached_glyphs = NULL; /* we are loading from file, no mem buffer needed */ font->data = NULL; font->data_size = 0; /* load the font */ error = FT_New_Face(ft_library, filepathname, 0, &font->face); if (error) { free(font); return NULL; } /* get if the font contains only fixed sizes */ if (!(font->face->face_flags & FT_FACE_FLAG_SCALABLE)) font->num_fixed_sizes = font->face->num_fixed_sizes; else font->num_fixed_sizes = -1; _alfont_new_cache_glyph(font); if (font->num_fixed_sizes < 0) { font->fixed_sizes = malloc(sizeof(int)); _alfont_reget_fixed_sizes(font); alfont_set_font_size(font, 8); } else { font->fixed_sizes = malloc(sizeof(int) * (font->num_fixed_sizes + 1)); _alfont_reget_fixed_sizes(font); /* set as current size the first found fixed size */ alfont_set_font_size(font, font->fixed_sizes[0]); } alfont_set_char_extra_spacing(font, 0); return font; } ALFONT_FONT *alfont_load_font_from_mem(const char *data, int data_len) { int error; char *new_data; /* try to allocate the memory */ ALFONT_FONT *font = malloc(sizeof(ALFONT_FONT)); new_data = malloc(data_len); if ((font == NULL) || (new_data == NULL)) { if (font) free(font); if (new_data) free(new_data); return NULL; } /* clear the struct */ memset(font, 0, sizeof(ALFONT_FONT)); font->cached_glyphs = NULL; /* copy user data to internal buffer */ font->data = new_data; font->data_size = data_len; memcpy((void *)font->data, (void *)data, data_len); /* load the font */ error = FT_New_Memory_Face(ft_library, font->data, font->data_size, 0, &font->face); if (error) { free(font->data); free(font); return NULL; } /* get if the font contains only fixed sizes */ if (!(font->face->face_flags & FT_FACE_FLAG_SCALABLE)) font->num_fixed_sizes = font->face->num_fixed_sizes; else font->num_fixed_sizes = -1; _alfont_new_cache_glyph(font); if (font->num_fixed_sizes < 0) { font->fixed_sizes = malloc(sizeof(int)); _alfont_reget_fixed_sizes(font); alfont_set_font_size(font, 8); } else { font->fixed_sizes = malloc(sizeof(int) * (font->num_fixed_sizes + 1)); _alfont_reget_fixed_sizes(font); /* set as current size the first found fixed size */ alfont_set_font_size(font, font->fixed_sizes[0]); } alfont_set_char_extra_spacing(font, 0); return font; } int alfont_text_mode(int mode) { int old_mode = alfont_textmode; alfont_textmode = mode; return old_mode; } void alfont_destroy_font(ALFONT_FONT *f) { if (f == NULL) return; /* delete old glyphs */ _alfont_delete_glyphs(f); /* delete the face */ FT_Done_Face(f->face); if (f->fixed_sizes) free(f->fixed_sizes); /* deallocate the data */ if (f->data) free(f->data); free(f); } void alfont_textout_aa(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color) { alfont_textout_aa_ex(bmp, f, s, x, y, color, alfont_textmode); } void alfont_textout_aa_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg) { int character; int alpha_table[256]; int last_glyph_index; /* is it under or over or too far to the right of the clipping rect then we can assume the string is clipped */ if ((y + f->face_h < bmp->ct) || (y > bmp->cb) || (x > bmp->cr)) return; /* if we are doing opaque mode, draw a rect and init our table*/ if (backg >= 0) { int i, r, g, b, br, bg, bb, ir, ig, ib; int blendr, blendg, blendb; rectfill(bmp, x, y, x + alfont_text_length(f, s) - 1, y + f->face_h - 1, backg); /* get the color rgb */ r = getr(color); g = getg(color); b = getb(color); /* get the background rgb */ br = getr(backg); bg = getg(backg); bb = getb(backg); /* get increments */ ir = (r == br) ? 0 : (r + 1) - br; ig = (g == bg) ? 0 : (g + 1) - bg; ib = (b == bb) ? 0 : (b + 1) - bb; blendr = br << 8; blendg = bg << 8; blendb = bb << 8; /* blend both values and make our alpha table */ for (i = 0; i < 256; i++) { alpha_table[i] = makecol(blendr >> 8, blendg >> 8, blendb >> 8); blendr += ir; blendg += ig; blendb += ib; } } /* draw char by char (using allegro unicode funcs) */ acquire_bitmap(bmp); last_glyph_index = 0; for (character = ugetxc(&s); character != 0; character = ugetxc(&s)) { int real_x, real_y, glyph_index; struct _ALFONT_CACHED_GLYPH cglyph; /* if left side of char farther than right side of clipping, we are done */ if (x > bmp->cr) break; /* get the character out of the font */ if (f->face->charmap) glyph_index = FT_Get_Char_Index(f->face, character); else glyph_index = character; /* cache the glyph */ _alfont_cache_glyph(f, glyph_index); cglyph = f->cached_glyphs[glyph_index]; /* calculate drawing coords */ real_x = x + cglyph.aaleft; real_y = (y - cglyph.aatop) + f->face_ascender; /* apply kerning */ /*if (last_glyph_index) { FT_Vector v; FT_Get_Kerning(f->face, last_glyph_index, glyph_index, ft_kerning_default, &v); real_x += v.x >> 6; real_y += v.y >> 6; }*/ last_glyph_index = glyph_index; /* draw only if exists */ if ((cglyph.aa_available) && (cglyph.aabmp)) { int bmp_x, bmp_y; unsigned char *bmp_p = cglyph.aabmp; const int max_bmp_x = cglyph.aawidth + real_x; const int max_bmp_y = cglyph.aaheight + real_y; /* if in opaque mode */ if (backg >= 0) { for (bmp_y = real_y; bmp_y < max_bmp_y; bmp_y++) { for (bmp_x = real_x; bmp_x < max_bmp_x; bmp_x++) { const int alpha = *bmp_p++; if (alpha) putpixel(bmp, bmp_x, bmp_y, alpha_table[alpha]); } } } /* if in transparent mode */ else { for (bmp_y = real_y; bmp_y < max_bmp_y; bmp_y++) { for (bmp_x = real_x; bmp_x < max_bmp_x; bmp_x++) { const int alpha = *bmp_p++; if (alpha) { if (alpha >= 255) solid_mode(); else { drawing_mode(DRAW_MODE_TRANS, NULL, 0, 0); set_trans_blender(0, 0, 0, alpha); } putpixel(bmp, bmp_x, bmp_y, color); } } } } } /* advance */ if (cglyph.advancex) x += cglyph.advancex + f->ch_spacing; if (cglyph.advancey) y += cglyph.advancey + f->ch_spacing; } release_bitmap(bmp); /* reset blender */ if (backg < 0) solid_mode(); } void alfont_textout(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color) { alfont_textout_ex(bmp, f, s, x, y, color, alfont_textmode); } void alfont_textout_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg) { int character, last_glyph_index; /* is it under or over or too far to the right of the clipping rect then we can assume the string is clipped */ if ((y + f->face_h < bmp->ct) || (y > bmp->cb) || (x > bmp->cr)) return; /* if we are doing opaque mode, draw a rect */ if (backg >= 0) rectfill(bmp, x, y, x + alfont_text_length(f, s) - 1, y + f->face_h - 1, backg); /* draw char by char (using allegro unicode funcs) */ acquire_bitmap(bmp); last_glyph_index = 0; for (character = ugetxc(&s); character != 0; character = ugetxc(&s)) { int real_x, real_y, glyph_index; struct _ALFONT_CACHED_GLYPH cglyph; /* if left side of char farther than right side of clipping, we are done */ if (x > bmp->cr) break; /* get the character out of the font */ if (f->face->charmap) glyph_index = FT_Get_Char_Index(f->face, character); else glyph_index = character; /* cache the glyph */ _alfont_cache_glyph(f, glyph_index); cglyph = f->cached_glyphs[glyph_index]; /* calculate drawing coords */ real_x = x + cglyph.left; real_y = (y - cglyph.top) + f->face_ascender; /* apply kerning */ /*if (last_glyph_index) { FT_Vector v; FT_Get_Kerning(f->face, last_glyph_index, glyph_index, ft_kerning_default, &v); real_x += v.x >> 6; real_y += v.y >> 6; }*/ last_glyph_index = glyph_index; /* draw only if exists */ if ((cglyph.mono_available) && (cglyph.bmp)) { unsigned char *bmp_p = cglyph.bmp; /* monochrome drawing */ int bmp_x, bmp_y; /* copy the character bitmap to our allegro one */ const int max_bmp_x = cglyph.width + real_x; const int max_bmp_y = cglyph.height + real_y; for (bmp_y = real_y; bmp_y < max_bmp_y; bmp_y++) { for (bmp_x = real_x; bmp_x < max_bmp_x; bmp_x++) { if (*bmp_p++) putpixel(bmp, bmp_x, bmp_y, color); } } } /* advance */ if (cglyph.advancex) x += cglyph.advancex + f->ch_spacing; if (cglyph.advancey) y += cglyph.advancey + f->ch_spacing; } release_bitmap(bmp); } int alfont_text_height(ALFONT_FONT *f) { return f->face_h; } int alfont_text_length(ALFONT_FONT *f, const char *str) { int total_length = 0, character, last_glyph_index; /* virtually draw char by char */ last_glyph_index = 0; for (character = ugetxc(&str); character != 0; character = ugetxc(&str)) { /* get the character out of the font */ int glyph_index; if (f->face->charmap) glyph_index = FT_Get_Char_Index(f->face, character); else glyph_index = character; /* apply kerning */ /*if (last_glyph_index) { FT_Vector v; FT_Get_Kerning(f->face, last_glyph_index, glyph_index, ft_kerning_default, &v); total_length += v.x >> 6; }*/ last_glyph_index = glyph_index; /* cache */ _alfont_cache_glyph(f, glyph_index); /* advance */ if (f->cached_glyphs[glyph_index].advancex) total_length += f->cached_glyphs[glyph_index].advancex + f->ch_spacing; } return total_length; } void alfont_textout_centre_aa(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color) { alfont_textout_centre_aa_ex(bmp, f, s, x, y, color, alfont_textmode); } void alfont_textout_centre_aa_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg) { x -= alfont_text_length(f, s) / 2; alfont_textout_aa_ex(bmp, f, s, x, y, color, backg); } void alfont_textout_centre(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color) { alfont_textout_centre_ex(bmp, f, s, x, y, color, alfont_textmode); } void alfont_textout_centre_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg) { x -= alfont_text_length(f, s) / 2; alfont_textout_ex(bmp, f, s, x, y, color, backg); } void alfont_textout_right_aa(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color) { alfont_textout_right_aa_ex(bmp, f, s, x, y, color, alfont_textmode); } void alfont_textout_right_aa_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg) { x -= alfont_text_length(f, s); alfont_textout_aa_ex(bmp, f, s, x, y, color, backg); } void alfont_textout_right(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color) { alfont_textout_right_ex(bmp, f, s, x, y, color, alfont_textmode); } void alfont_textout_right_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg) { x -= alfont_text_length(f, s); alfont_textout_ex(bmp, f, s, x, y, color, backg); } void alfont_textprintf(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout(bmp, f, buf, x, y, color); } void alfont_textprintf_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_ex(bmp, f, buf, x, y, color, backg); } void alfont_textprintf_aa(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_aa(bmp, f, buf, x, y, color); } void alfont_textprintf_aa_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_aa_ex(bmp, f, buf, x, y, color, backg); } void alfont_textprintf_centre(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_centre(bmp, f, buf, x, y, color); } void alfont_textprintf_centre_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_centre_ex(bmp, f, buf, x, y, color, backg); } void alfont_textprintf_centre_aa(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_centre_aa(bmp, f, buf, x, y, color); } void alfont_textprintf_centre_aa_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_centre_aa_ex(bmp, f, buf, x, y, color, backg); } void alfont_textprintf_right(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_right(bmp, f, buf, x, y, color); } void alfont_textprintf_right_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_right_ex(bmp, f, buf, x, y, color, backg); } void alfont_textprintf_right_aa(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_right_aa(bmp, f, buf, x, y, color); } void alfont_textprintf_right_aa_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...) { char buf[512]; va_list ap; va_start(ap, format); uvszprintf(buf, sizeof(buf), format, ap); va_end(ap); alfont_textout_right_aa_ex(bmp, f, buf, x, y, color, backg); } int alfont_is_fixed_font(ALFONT_FONT *f) { if (f->num_fixed_sizes < 0) return FALSE; else return TRUE; } int alfont_is_scalable_font(ALFONT_FONT *f) { if (f->num_fixed_sizes < 0) return TRUE; else return FALSE; } const int *alfont_get_available_fixed_sizes(ALFONT_FONT *f) { /* we reget them just to make sure the contents where not changed */ _alfont_reget_fixed_sizes(f); return f->fixed_sizes; } int alfont_get_nof_available_fixed_sizes(ALFONT_FONT *f) { return f->num_fixed_sizes; } int alfont_get_char_extra_spacing(ALFONT_FONT *f) { return f->ch_spacing; } void alfont_set_char_extra_spacing(ALFONT_FONT *f, int spacing) { if (spacing < 0) f->ch_spacing = 0; else if (spacing > 4096) f->ch_spacing = 4096; else f->ch_spacing = spacing; } |