Skip to content

Commit

Permalink
SVN rev 1897: Version 0.4.5 Alpha
Browse files Browse the repository at this point in the history
  • Loading branch information
Raptor007 committed Aug 29, 2024
1 parent 35679e1 commit 0661566
Show file tree
Hide file tree
Showing 31 changed files with 955 additions and 216 deletions.
2 changes: 1 addition & 1 deletion Data/Missions/rebel4.def
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ empire_bomber GUN
rebel_waves 2
empire_waves 4
rebel_wave_dist 4000
empire_wave_dist 3000
empire_wave_dist 3500
ai_fighter_ratio 10
player_spawn 8000 0 0 -0.95 0 -0.15
rebel_spawn 7700 0 0 -0.95 0 -0.15
Expand Down
5 changes: 3 additions & 2 deletions Data/Missions/rebel5.def
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ spawn T/F "Black 2" empire at -2030 50 100 from player facing 1 0 0
spawn T/F "Black 3" empire at -2060 -50 100 from player facing 1 0 0

at 4:35 if player alive
spawn YT1300 "M.Falcon" rebel at 1000 100 0 from player facing -1 0 0
spawn YT1300 "M.Falcon" rebel at 2000 0 100 from player facing -1 0 0

at 4:36 while "M.Falcon" alive
stfu true
Expand Down Expand Up @@ -111,7 +111,8 @@ alert r5_behind.wav It came from... behind!
//alert r5_tail.wav Watch it, you've got one on your tail!

on victory
next_mission rebel1 // FIXME
next_mission rebel6
wait 1
alert great_shot.wav Great shot, kid!
wait 1.2
message That was one in a million!
Expand Down
100 changes: 100 additions & 0 deletions Data/Missions/rebel6.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
mission_name Rebel 6: Exodus Road
mission_desc Escape from Yavin with the Empire hot on your trail.
gametype hunt
player_team rebel
player_ship rebel_gunner X/W Y/W
defending_team rebel
rebel_flagship YT1300
rebel_flagship_name "M.Falcon"
rebel_fighter X/W
rebel_bomber Y/W
empire_fighter T/F
empire_bomber T/I
rebel_waves 1
empire_waves 7
rebel_wave_dist 7000
empire_wave_dist 5000
player_spawn 4000 0 -300 -1 0 0

//at 0:01 //if no player ships
//alert r6_dropby.wav Good morning!
//wait 1.3
//message Nice of you to drop by.

at 0:03
alert r6_fun.wav Here's where the fun begins...

at 0:08
spawn rebel Y/W "Gold 1" at 200 150 -10 facing -1 0 0
wait 0.1
spawn rebel Y/W "Gold 2" at 200 250 -10 facing -1 0 0
wait 0.1
spawn rebel CRV "Korolev" at 0 200 -10 facing -1 0 0
wait 0.5
spawn rebel Y/W "Gold 3" at -500 400 -20 facing -1 0 0
wait 0.1
spawn rebel Y/W "Gold 4" at -500 600 -20 facing -1 0 0
wait 0.1
spawn rebel FRG "Redemption" at -800 500 -20 facing -1 0 0
wait 2
spawn rebel CRS "Independence" at -2500 -1000 500 facing -1 0 0

on hit "M.Falcon"
wait 1.5
alert r6_1100fire.wav Eleven o'clock! Fire!
hit1 true

on damaged "M.Falcon" while ( alive "M.Falcon" ) and ( hit1 true )
wait 2
alert r6_dontworry.wav Don't worry!
wait 0.8
message She'll hold together.
hit2 true
hit1 false

on damaged "M.Falcon" while ( alive "M.Falcon" ) and ( hit2 true )
wait 2
alert r6_dontworry.wav Hear me, baby?
wait 0.5
message Hold together.
hit3 true
hit2 false

on destroyed "M.Falcon"
hit1 false
hit2 false
hit3 false

on empire destroyed by player turret
wait 2
alert r6_cocky.wav Great kid!
wait 0.8
message Don't get cocky.

on empire destroyed by "M.Falcon"
wait 1.5
alert r6_haha.wav Hahaaa!

when ( no empire here ) and ( players alive )
victory

on victory
//next_mission rebel7
wait 3
alert r1_win2.wav All craft, prepare to jump to hyperspace on my mark.
wait 3.3
jump ai ships
wait 1
jump player ships

on defeat
wait 1.5
alert Silly/failed.wav You blew it, and you took me down with you!
wait 1.5
message I thought you had great reflexes!
wait 1.7
message What happened to you??
wait 0.8
message I used to have, like, a good pilot!
wait 1.5
message Man, you're slipping.
27 changes: 27 additions & 0 deletions Data/Ships/freighter.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
id FRT
name Freighter
category capital
team any
radius 75
speed 25
accel 8
roll 5 4
pitch 4 3
yaw 4 3
health 1500
shield 2000
recover 30
recharge 1
ramming 2000
explode 0.1
engine 9 0 -51.6 engine_blue.ani 7 1 1 1 0.333
engine 6 0 -51.7 engine_blue.ani 7 1 1 1 0.333
engine 3 0 -51.8 engine_blue.ani 7 1 1 1 0.333
engine 0 0 -51.9 engine_blue.ani 7 1 1 1 0.333
engine -3 0 -51.8 engine_blue.ani 7 1 1 1 0.333
engine -6 0 -51.7 engine_blue.ani 7 1 1 1 0.333
engine -9 0 -51.6 engine_blue.ani 7 1 1 1 0.333
model freighter.obj
model_collision freighter.obj
cockpit freighter.obj 0 10 37
model_scale 0.022
36 changes: 36 additions & 0 deletions Data/Ships/tie-interceptor-ion.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
id T/I-I
name TIE Interceptor (Ion)
squadron Sigma
category fighter
team empire
secret
radius 4.4
speed 220
accel 125
roll 135 125
pitch 85 70
yaw 65 50
roll_change 385 360
pitch_change 350 280
yaw_change 335 270
health 91
shield 0
ramming 500
explode 1
weapon ion_cannon 2.7775 1.056 6.1
weapon ion_cannon -2.7775 -1.056 6.1
weapon ion_cannon -2.7775 1.056 6.1
weapon ion_cannon 2.7775 -1.056 6.1
firetime ion_cannon 0.25
engine 0.88 0.03 -0.94 engine_yellow.ani 0.4 1 0.1 0.1 0.4
engine -0.88 0.03 -0.94 engine_yellow.ani 0.4 1 0.1 0.1 0.4
model tie-interceptor.obj
model_collision tie-interceptor_col.obj
cockpit tie-interceptor_cockpit_vr.obj 0 0 0.07
cockpit_vr tie-interceptor_cockpit_vr.obj 0 0.1 -0.1
model_scale 0.022
glance 85 0
selfie 16
flyby 20 tie_slow.wav
flyby 200 tie_med.wav
flyby 250 tie_fast.wav
31 changes: 31 additions & 0 deletions Data/Ships/transport.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
id TRN
name Stormtrooper Transport
squadron Epsilon
category transport
team empire
radius 9
speed 110
accel 35
roll 85 80
pitch 50 40
yaw 40 30
roll_change 160 150
pitch_change 90 80
yaw_change 90 80
health 200
shield 200
recover 10
recharge 5
ramming 600
explode 0.9
weapon laser 0.7 -2 8.5
weapon laser -0.7 -2 8.5
engine 2.75 2 -7 engine_blue.png 1.1 1 1 1 0.33
engine -2.75 2 -7 engine_blue.png 1.1 1 1 1 0.33
model transport.obj
model_collision transport_col.obj
cockpit transport.obj 0 0.3 10
model_scale 0.022
flyby 20 xwing_slow.wav
flyby 170 xwing_med.wav
flyby 210 xwing_fast.wav
Binary file modified English.lproj/InfoPlist.strings
Binary file not shown.
4 changes: 2 additions & 2 deletions Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
<key>CFBundleSignature</key>
<string>XWng</string>
<key>CFBundleVersion</key>
<string>0.4.4</string>
<string>0.4.5</string>
<key>CFBundleShortVersionString</key>
<string>0.4.4 Alpha</string>
<string>0.4.5 Alpha</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
Expand Down
8 changes: 7 additions & 1 deletion README.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----------------------------------------
| X-Wing Revival |
| 0.4.4 Alpha (2024-07-27) |
| 0.4.5 Alpha (2024-08-28) |
| by Raptor007 (Blair Sherman) |
| http://raptor007.com/x-wing-revival/ |
----------------------------------------
Expand Down Expand Up @@ -493,6 +493,12 @@ console commands to execute, such as "sv gametype yavin" or "sv rebel_fighter A/

== VERSION HISTORY ==

Alpha 0.4.5 (2024-08-28):
* Fixed collision detection bugs and improved performance.
* Fixed missing Lamba shuttle textures on case-sensitive Linux.
* Added more detail to turret and starfighter laser firing animations.
* Campaign progress is now saved separately from settings.

Alpha 0.4.4 (2024-07-27):
* Joystick and controller deadzones can be precisely calibrated.
* Reworked collision detection for improved accuracy and performance.
Expand Down
16 changes: 8 additions & 8 deletions Sources/Game/Asteroid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,17 @@ void Asteroid::ClientInit( void )
if( Shape && Shape->Materials.size() )
{
// Use the model's values if available.
for( std::map<std::string,ModelMaterial>::iterator mtl_iter = Shape->Materials.begin(); mtl_iter != Shape->Materials.end(); mtl_iter ++ )
for( std::map<std::string,ModelMaterial*>::iterator mtl_iter = Shape->Materials.begin(); mtl_iter != Shape->Materials.end(); mtl_iter ++ )
{
// We want to match the most-used material of the model.
if( (int) mtl_iter->second.Arrays.VertexCount > best_vertex_count )
if( (int) mtl_iter->second->Arrays.VertexCount > best_vertex_count )
{
Texture.BecomeInstance( &(mtl_iter->second.Texture) );
Ambient = mtl_iter->second.Ambient;
Diffuse = mtl_iter->second.Diffuse;
Specular = mtl_iter->second.Specular;
Shininess = mtl_iter->second.Shininess;
best_vertex_count = mtl_iter->second.Arrays.VertexCount;
Texture.BecomeInstance( &(mtl_iter->second->Texture) );
Ambient = mtl_iter->second->Ambient;
Diffuse = mtl_iter->second->Diffuse;
Specular = mtl_iter->second->Specular;
Shininess = mtl_iter->second->Shininess;
best_vertex_count = mtl_iter->second->Arrays.VertexCount;
}
}
}
Expand Down
36 changes: 18 additions & 18 deletions Sources/Game/DeathStar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,17 @@ void DeathStar::ClientInit( void )
if( DetailSide.Materials.size() )
{
// Use the model's values if available.
for( std::map<std::string,ModelMaterial>::iterator mtl_iter = DetailSide.Materials.begin(); mtl_iter != DetailSide.Materials.end(); mtl_iter ++ )
for( std::map<std::string,ModelMaterial*>::iterator mtl_iter = DetailSide.Materials.begin(); mtl_iter != DetailSide.Materials.end(); mtl_iter ++ )
{
// We want to match the most-used material of the model.
if( (int) mtl_iter->second.Arrays.VertexCount > best_vertex_count )
if( (int) mtl_iter->second->Arrays.VertexCount > best_vertex_count )
{
Texture.BecomeInstance( &(mtl_iter->second.Texture) );
Ambient = mtl_iter->second.Ambient;
Diffuse = mtl_iter->second.Diffuse;
Specular = mtl_iter->second.Specular;
Shininess = mtl_iter->second.Shininess;
best_vertex_count = mtl_iter->second.Arrays.VertexCount;
Texture.BecomeInstance( &(mtl_iter->second->Texture) );
Ambient = mtl_iter->second->Ambient;
Diffuse = mtl_iter->second->Diffuse;
Specular = mtl_iter->second->Specular;
Shininess = mtl_iter->second->Shininess;
best_vertex_count = mtl_iter->second->Arrays.VertexCount;
}
}
}
Expand All @@ -95,16 +95,16 @@ void DeathStar::ClientInit( void )
best_vertex_count = -1;

// Use the model's values if available.
for( std::map<std::string,ModelMaterial>::iterator mtl_iter = DetailBottom.Materials.begin(); mtl_iter != DetailBottom.Materials.end(); mtl_iter ++ )
for( std::map<std::string,ModelMaterial*>::iterator mtl_iter = DetailBottom.Materials.begin(); mtl_iter != DetailBottom.Materials.end(); mtl_iter ++ )
{
// We want to match the most-used material of the model.
if( (int) mtl_iter->second.Arrays.VertexCount > best_vertex_count )
if( (int) mtl_iter->second->Arrays.VertexCount > best_vertex_count )
{
BottomAmbient = mtl_iter->second.Ambient;
BottomDiffuse = mtl_iter->second.Diffuse;
BottomSpecular = mtl_iter->second.Specular;
BottomShininess = mtl_iter->second.Shininess;
best_vertex_count = mtl_iter->second.Arrays.VertexCount;
BottomAmbient = mtl_iter->second->Ambient;
BottomDiffuse = mtl_iter->second->Diffuse;
BottomSpecular = mtl_iter->second->Specular;
BottomShininess = mtl_iter->second->Shininess;
best_vertex_count = mtl_iter->second->Arrays.VertexCount;
}
}
}
Expand Down Expand Up @@ -195,16 +195,16 @@ bool DeathStar::WillCollide( const GameObject *other, double dt, std::string *th
return false;

ModelArrays array_inst;
for( std::map<std::string,ModelObject>::const_iterator obj_iter = ship->Shape.Objects.begin(); obj_iter != ship->Shape.Objects.end(); obj_iter ++ )
for( std::map<std::string,ModelObject*>::const_iterator obj_iter = ship->Shape.Objects.begin(); obj_iter != ship->Shape.Objects.end(); obj_iter ++ )
{
// Don't detect collisions with destroyed subsystems.
std::map<std::string,double>::const_iterator subsystem_iter = ship->Subsystems.find( obj_iter->first );
if( (subsystem_iter != ship->Subsystems.end()) && (subsystem_iter->second <= 0.) )
continue;

for( std::map<std::string,ModelArrays>::const_iterator array_iter = obj_iter->second.Arrays.begin(); array_iter != obj_iter->second.Arrays.end(); array_iter ++ )
for( std::map<std::string,ModelArrays*>::const_iterator array_iter = obj_iter->second->Arrays.begin(); array_iter != obj_iter->second->Arrays.end(); array_iter ++ )
{
array_inst.BecomeInstance( &(array_iter->second) );
array_inst.BecomeInstance( array_iter->second );
array_inst.MakeWorldSpace( ship );
for( size_t i = 0; i < array_inst.VertexCount; i ++ )
{
Expand Down
6 changes: 3 additions & 3 deletions Sources/Game/DeathStarBox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,17 +145,17 @@ bool DeathStarBox::WillCollide( const GameObject *other, double dt, std::string
{
Vec3D ship_motion = ship->MotionVector * dt;
ModelArrays array_inst;
for( std::map<std::string,ModelObject>::const_iterator obj_iter = ship->Shape.Objects.begin(); obj_iter != ship->Shape.Objects.end(); obj_iter ++ )
for( std::map<std::string,ModelObject*>::const_iterator obj_iter = ship->Shape.Objects.begin(); obj_iter != ship->Shape.Objects.end(); obj_iter ++ )
{
/*
// Don't detect collisions with destroyed subsystems.
std::map<std::string,double>::const_iterator subsystem_iter = ship->Subsystems.find( obj_iter->first );
if( (subsystem_iter != ship->Subsystems.end()) && (subsystem_iter->second <= 0.) )
continue;
*/
for( std::map<std::string,ModelArrays>::const_iterator array_iter = obj_iter->second.Arrays.begin(); array_iter != obj_iter->second.Arrays.end(); array_iter ++ )
for( std::map<std::string,ModelArrays*>::const_iterator array_iter = obj_iter->second->Arrays.begin(); array_iter != obj_iter->second->Arrays.end(); array_iter ++ )
{
array_inst.BecomeInstance( &(array_iter->second) );
array_inst.BecomeInstance( array_iter->second );
array_inst.MakeWorldSpace( ship );
for( size_t i = 0; i < array_inst.VertexCount; i ++ )
{
Expand Down
Loading

0 comments on commit 0661566

Please sign in to comment.