summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <uberlord@gentoo.org>2006-03-08 19:29:47 +0000
committerRoy Marples <uberlord@gentoo.org>2006-03-08 19:29:47 +0000
commitf165279af42645fa535c6af3d9f98bbbfa086f7f (patch)
treeaeb4bfa9602184b96a45f0635eef7e7e6d802b8a /games-rpg/eternal-lands
parentFix dependency to depend only on xmms, unzip is already depended on by xmms, ... (diff)
downloadgentoo-2-f165279af42645fa535c6af3d9f98bbbfa086f7f.tar.gz
gentoo-2-f165279af42645fa535c6af3d9f98bbbfa086f7f.tar.bz2
gentoo-2-f165279af42645fa535c6af3d9f98bbbfa086f7f.zip
Added a patch written by me that enables the use of compiled vertex arrays
as an in-game toggle. Some cards - appears to be IGP style chipsets using the xorg driver - don't display in-game graphics correctly and this patch is an interim fix until EL or X works 100%. This patch has been approved by 'Entropy' for use on the EL main server. (Portage version: 2.1_pre5-r4)
Diffstat (limited to 'games-rpg/eternal-lands')
-rw-r--r--games-rpg/eternal-lands/ChangeLog14
-rw-r--r--games-rpg/eternal-lands/Manifest9
-rw-r--r--games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild103
-rw-r--r--games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r16
-rw-r--r--games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch217
5 files changed, 348 insertions, 1 deletions
diff --git a/games-rpg/eternal-lands/ChangeLog b/games-rpg/eternal-lands/ChangeLog
index 6ae47988fd11..1249c9b571b6 100644
--- a/games-rpg/eternal-lands/ChangeLog
+++ b/games-rpg/eternal-lands/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for games-rpg/eternal-lands
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands/ChangeLog,v 1.10 2006/02/15 08:02:20 uberlord Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands/ChangeLog,v 1.11 2006/03/08 19:29:47 uberlord Exp $
+
+*eternal-lands-1.2.0_p1-r1 (08 Mar 2006)
+
+ 08 Mar 2006; Roy Marples <uberlord@gentoo.org>
+ +files/eternal-lands-1.2.0-vertex-array.patch,
+ +eternal-lands-1.2.0_p1-r1.ebuild:
+ Added a patch written by me that enables the use of compiled vertex arrays
+ as an in-game toggle. Some cards - appears to be IGP style chipsets using
+ the xorg driver - don't display in-game graphics correctly and this patch
+ is an interim fix until EL or X works 100%.
+
+ This patch has been approved by 'Entropy' for use on the EL main server.
15 Feb 2006; Roy Marples <uberlord@gentoo.org>
eternal-lands-1.2.0_p1.ebuild:
diff --git a/games-rpg/eternal-lands/Manifest b/games-rpg/eternal-lands/Manifest
index f5e397a589db..38c722cdd8b4 100644
--- a/games-rpg/eternal-lands/Manifest
+++ b/games-rpg/eternal-lands/Manifest
@@ -1,12 +1,21 @@
MD5 894596addf82c454c06e91737a5d1ba6 ChangeLog 1902
RMD160 d5f6f7e3ee41caaf0fd18ae1742018864d56a6e9 ChangeLog 1902
SHA256 0a6961d292f871ca68cd56683c038811115d0a0920bf8811c3cd837947516843 ChangeLog 1902
+MD5 c1dce0d7cc933527e2208b8bea855c60 eternal-lands-1.2.0_p1-r1.ebuild 2764
+RMD160 fbf72fff7be84a9d16db527043bd9fe7ab8fb43a eternal-lands-1.2.0_p1-r1.ebuild 2764
+SHA256 5ef1cbc211301977b61832a4d4e9427bb9dd3d57736d25aebd22e6720950ec9e eternal-lands-1.2.0_p1-r1.ebuild 2764
MD5 80a737ef2550f2350f72d8a6fe367541 eternal-lands-1.2.0_p1.ebuild 2594
RMD160 5ec18ce80a8343a33a2df27b826b42f890f55590 eternal-lands-1.2.0_p1.ebuild 2594
SHA256 bfdd5448dec1b84544bff02847b478def4b8e2edfcc6b3933b786ef9b53acf86 eternal-lands-1.2.0_p1.ebuild 2594
MD5 942fb2903df55d0f4b9de1d5d9930aa5 files/digest-eternal-lands-1.2.0_p1 446
RMD160 8d98b22fce1c8c96488485778fcb0c433503c265 files/digest-eternal-lands-1.2.0_p1 446
SHA256 3ab6bd6c860bbada97e4e1512e85437d05b978a961b8534b16129a9f15fe3b63 files/digest-eternal-lands-1.2.0_p1 446
+MD5 942fb2903df55d0f4b9de1d5d9930aa5 files/digest-eternal-lands-1.2.0_p1-r1 446
+RMD160 8d98b22fce1c8c96488485778fcb0c433503c265 files/digest-eternal-lands-1.2.0_p1-r1 446
+SHA256 3ab6bd6c860bbada97e4e1512e85437d05b978a961b8534b16129a9f15fe3b63 files/digest-eternal-lands-1.2.0_p1-r1 446
+MD5 abb3e62b8f7cda5c1314c7a6f6ae3477 files/eternal-lands-1.2.0-vertex-array.patch 9710
+RMD160 93b497fd303732a8316a84f46f941da731a28f06 files/eternal-lands-1.2.0-vertex-array.patch 9710
+SHA256 35ae774363b0c8888953190f5c35e06d696279712a0fa14600516cb43ee79f73 files/eternal-lands-1.2.0-vertex-array.patch 9710
MD5 a20195e09a3313e5b377c3c4ecc29e26 metadata.xml 365
RMD160 c06f3d4bff68a5e0f8ab2da3dc62c3d0cc570a20 metadata.xml 365
SHA256 0a477bd6a9085aca7e4538f81c3b9d7710cead2395d222f9903c898df57b3e63 metadata.xml 365
diff --git a/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild b/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild
new file mode 100644
index 000000000000..a7555041084e
--- /dev/null
+++ b/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild,v 1.1 2006/03/08 19:29:47 uberlord Exp $
+
+inherit games
+
+MY_PV="${PV//_/}"
+MY_PV="${MY_PV//./}"
+S="${WORKDIR}/elc"
+DESCRIPTION="An online MMORPG written in C and SDL"
+HOMEPAGE="http://www.eternal-lands.com"
+SRC_URI="mirror://gentoo/elc_${MY_PV}.tgz
+ mirror://gentoo/eternal-lands.png"
+
+# NOTE: Sometimes you'll have to roll your own elc tarball from their CVS
+# tree as they don't always release one.
+# If they do then use this in SRC_URI instead
+# ftp://ftp.berlios.de/pub/elc/elc_${MY_PV}.tgz
+
+LICENSE="eternal_lands"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="
+ || ( (
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-libs/libXext )
+ virtual/x11 )
+ virtual/opengl
+ >=media-libs/libsdl-1.2.5
+ >=media-libs/sdl-net-1.2.5
+ <media-libs/openal-20051024
+ !>=media-libs/openal-20051024
+ !media-libs/alut
+ media-libs/libvorbis
+ >=dev-libs/libxml2-2.6.7
+ =media-libs/cal3d-0.10.0
+ >=media-libs/libpng-1.2.8
+ ~games-rpg/${PN}-data-${PV}"
+
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ sys-apps/findutils
+ doc? ( >=app-doc/doxygen-1.3.8
+ >=media-gfx/graphviz-1.10 )"
+
+src_unpack() {
+ OPTIONS="OPTIONS=-DDATA_DIR="\\\\\"${GAMES_DATADIR}/${PN}/\\\\\"""
+ S_CLIENT="${WORKDIR}/elc"
+ BROWSER="konqueror"
+
+ unpack ${A}
+ cd "${S}"
+
+ # Allow compiled vertex arrays to be togglable as they don't seem to work
+ # with xorg drivers on IGP style cards.
+ epatch "${FILESDIR}/${PN}-1.2.0-vertex-array.patch"
+
+ # Remove CVS entries
+ find . -type d -name CVS -exec rm -rf {} \; 2>/dev/null
+
+ use amd64 && OPTIONS="${OPTIONS} -DX86_64"
+ sed \
+ -e "s@CFLAGS=\$(PLATFORM) \$(CWARN) -O -ggdb -pipe@CFLAGS=${CFLAGS} @g"\
+ -e "s@CXXFLAGS=\$(PLATFORM) \$(CXXWARN) -O -ggdb -pipe@CXXFLAGS=${CXXFLAGS} @g"\
+ -e "s@OPTIONS=@${OPTIONS} @g" \
+ -e 's/ -DAUTO_UPDATE//' \
+ Makefile.linux > Makefile \
+ || die "sed failed"
+ sed -i \
+ -e 's/#browser/browser/g' \
+ -e "s/browser = mozilla/#browser = ${BROWSER}/g" \
+ -e "s@#data_dir = /usr/local/games/el/@#data_dir = ${GAMES_DATADIR}/${PN}/@g" \
+ el.ini || die "sed failed"
+}
+
+src_compile() {
+ emake || die "emake failed"
+ if use doc; then
+ emake docs || die "Failed to create documentation, try with USE=-doc"
+ mv ./docs/html/ ../client || die "Failed to move documentation directory"
+ fi
+}
+
+src_install() {
+ newgamesbin el.x86.linux.bin el || die "newgamesbin failed"
+ doicon "${DISTDIR}/eternal-lands.png"
+ make_desktop_entry el "Eternal Lands"
+
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r *.ini *.txt *.lst \
+ actor_defs books languages \
+ || die "doins failed"
+
+ if use doc ; then
+ dohtml -r client/*
+ fi
+
+ prepgamesdirs
+}
diff --git a/games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1 b/games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1
new file mode 100644
index 000000000000..ec8e42ae0a6d
--- /dev/null
+++ b/games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1
@@ -0,0 +1,6 @@
+MD5 15492252c997253a90e6eec4f9edfeae elc_120p1.tgz 731594
+RMD160 a06be332015a8db57c3455f9918e3b58cfe92a41 elc_120p1.tgz 731594
+SHA256 a610102e92e91c6c69c4ceef906ae5010280267a1b9f55ec71f172e3691f0674 elc_120p1.tgz 731594
+MD5 059df8128b11b19a76b54e9907072f00 eternal-lands.png 9955
+RMD160 2f9c8acd96214577cf8b8027f0d20fb1fe7574ff eternal-lands.png 9955
+SHA256 dd7d45cd9948fe7875ebd0bfcd1925d9b34e7606a223faf61d37a6dd2cd433fb eternal-lands.png 9955
diff --git a/games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch b/games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch
new file mode 100644
index 000000000000..0bb9f3465b9f
--- /dev/null
+++ b/games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch
@@ -0,0 +1,217 @@
+--- elc/3d_objects.c 2006-01-27 18:18:30.000000000 +0000
++++ elc/3d_objects.c 2006-02-15 17:15:05.000000000 +0000
+@@ -125,7 +125,7 @@
+ // watch for a change
+ if(object_id->e3d_data != cur_e3d){
+ if(cur_e3d != NULL){
+- if(have_compiled_vertex_array)ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array)ELglUnlockArraysEXT();
+ }
+
+ if(have_vertex_buffers && vbo[0] && vbo[2]) {
+@@ -149,7 +149,7 @@
+ CHECK_GL_ERRORS();
+
+ // lock this new one
+- if(have_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no);
++ if(use_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no);
+ // gather statistics
+ if(object_id->e3d_data != cur_e3d){
+ #ifdef DEBUG
+@@ -274,7 +274,7 @@
+ // call the low level routine we share
+ draw_3d_object_detail(object_id);
+
+- if(have_compiled_vertex_array)ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array)ELglUnlockArraysEXT();
+ cur_e3d= NULL;
+
+ if(object_id->self_lit && (!is_day || dungeon))glEnable(GL_LIGHTING);
+@@ -363,7 +363,7 @@
+ }
+ }
+
+- if(have_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT();
+ if(have_multitexture && !dungeon && (clouds_shadows||use_shadow_mapping)){
+ ELglClientActiveTextureARB(detail_unit);
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+--- elc/elconfig.c 2006-01-27 18:20:00.000000000 +0000
++++ elc/elconfig.c 2006-02-15 18:05:10.000000000 +0000
+@@ -180,6 +180,22 @@
+ }
+ #endif
+
++
++void change_compiled_vertex_array(int *value)
++{
++ if (*value)
++ {
++ *value = 0;
++ }
++ else if (!gl_extensions_loaded || have_compiled_vertex_array)
++ {
++ // don't check if we have hardware support when OpenGL
++ // extensions are not initialized yet.
++ *value = 1;
++ }
++ else LOG_TO_CONSOLE(c_green2,disabled_compiled_vertex_arrays);
++}
++
+ void change_point_particles(int *value)
+ {
+ if (*value)
+@@ -981,6 +997,7 @@
+ add_var(BOOL,"clouds_shadows","cshad",&clouds_shadows,change_var,1,"Cloud Shadows","The clouds shadows are projected on the ground, and the game looks nicer with them on.",SPECIALVID);
+ add_var(BOOL,"show_fps","fps",&show_fps,change_var,1,"Show FPS","Show the current frames per second in the corner of the window",HUD);
+ add_var(BOOL,"use_mipmaps","mm",&use_mipmaps,change_var,1,"Mipmaps","Mipmaps is a texture effect that blurs the texture a bit - it may look smoother and better, or it may look worse depending on your graphics driver settings and the like.",SPECIALVID);
++ add_var(BOOL,"use_compiled_vertex_array","cva",&use_compiled_vertex_array,change_compiled_vertex_array,1,"Compiled Vertex Array","Some systems will not support the new compiled vertex array in EL. Disable this if some 3D objects do not display correctly.",SPECIALVID);
+ add_var(BOOL,"use_point_particles","upp",&use_point_particles,change_point_particles,1,"Point Particles","Some systems will not support the new point based particles in EL. Disable this if your client complains about not having the point based particles extension.",SPECIALVID);
+ add_var(INT,"particles_percentage","pp",&particles_percentage,change_particles_percentage,100,"Particle Percentage","If you experience a significant slowdown when particles are nearby, you should consider lowering this number.",SPECIALVID,0,100);
+ #ifdef TERRAIN
+--- elc/el.ini 2006-02-15 18:12:36.000000000 +0000
++++ elc/el.ini 2006-02-15 17:31:01.000000000 +0000
+@@ -117,6 +117,8 @@
+
+ #use_mipmaps = 1
+
++#use_compiled_vertex_array = 1
++
+ Some systems will not support the new point based particles in EL. If your client complaints
+ about not having the point based particles extension, set the following to 0:
+
+--- elc/gl_init.c 2006-01-17 00:27:41.000000000 +0000
++++ elc/gl_init.c 2006-02-15 18:09:25.000000000 +0000
+@@ -24,6 +24,7 @@
+ int use_vertex_buffers=0;
+ int vertex_arrays_built=0;
+ int have_compiled_vertex_array=0;
++int use_compiled_vertex_array=0;
+ int have_point_sprite=0;
+ int have_arb_compression=0;
+ int have_s3_compression=0;
+@@ -573,8 +574,12 @@
+ have_compiled_vertex_array=get_string_occurance("GL_EXT_compiled_vertex_array",extensions,ext_str_len,0);
+ if(have_compiled_vertex_array < 0) {
+ have_compiled_vertex_array=0;
++ use_compiled_vertex_array=0;
+ snprintf(str,sizeof(str),gl_ext_not_found,"GL_EXT_compiled_vertex_array");
+ LOG_TO_CONSOLE(c_red1,str);
++ } else if (!use_compiled_vertex_array) {
++ snprintf(str,sizeof(str),gl_ext_found_not_used,"GL_EXT_compiled_vertex_array");
++ LOG_TO_CONSOLE(c_green2,str);
+ } else {
+ snprintf(str,sizeof(str),gl_ext_found,"GL_EXT_compiled_vertex_array");
+ LOG_TO_CONSOLE(c_green2,str);
+--- elc/gl_init.h 2006-01-07 16:46:23.000000000 +0000
++++ elc/gl_init.h 2006-02-15 17:24:55.000000000 +0000
+@@ -27,6 +27,7 @@
+ extern int use_vertex_buffers; /*!< specifies if we use vertex buffer objects or not */
+ extern int vertex_arrays_built; /*!< flag that indicates whether the vertex array was already initialized or not */
+ extern int have_compiled_vertex_array; /*!< indicates whether we have the compiled vertex array extension or not */
++extern int use_compiled_vertex_array; /*!< specified if we use compiled vertex array or not */
+ extern int have_point_sprite; /*!< indicates whether we have point sprites or not */
+ extern int have_arb_compression; /*!< flag that indicates whether we have the ARB compression extension or not */
+ extern int have_s3_compression; /*!< flag that indicates whether we have the S3 compression extension or not */
+@@ -35,6 +36,7 @@
+ extern int have_shaders;
+
+ extern int use_mipmaps; /*!< indicates whether we use mipmaps or not */
++extern int use_compiled_vertex_array;
+
+ extern int have_arb_shadow;
+ extern int have_ogsl_pixel_shader;
+--- elc/reflection.c 2006-01-17 00:27:42.000000000 +0000
++++ elc/reflection.c 2006-02-15 17:15:29.000000000 +0000
+@@ -209,14 +209,14 @@
+ glNormalPointer(GL_FLOAT,0,array_normal);
+ }
+
+- if(have_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no);
++ if(use_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no);
+ for(i=0;i<materials_no;i++)
+ if(array_order[i].count>0)
+ {
+ get_and_set_texture_id(array_order[i].texture_id);
+ glDrawArrays(GL_TRIANGLES,array_order[i].start,array_order[i].count);
+ }
+- if(have_compiled_vertex_array)ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array)ELglUnlockArraysEXT();
+ CHECK_GL_ERRORS();
+ glPopMatrix();//restore the scene
+ CHECK_GL_ERRORS();
+--- elc/shadows.c 2006-01-17 00:27:42.000000000 +0000
++++ elc/shadows.c 2006-02-15 17:16:11.000000000 +0000
+@@ -240,7 +240,7 @@
+ // watch for a change
+ if(object_id->e3d_data != cur_e3d){
+ if(cur_e3d != NULL){
+- if(have_compiled_vertex_array)ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array)ELglUnlockArraysEXT();
+ }
+ if(have_vertex_buffers && object_id->e3d_data->vbo[2]){
+ ELglBindBufferARB(GL_ARRAY_BUFFER_ARB, object_id->e3d_data->vbo[2]);
+@@ -257,7 +257,7 @@
+ }
+ CHECK_GL_ERRORS();
+ // lock this new one
+- if(have_compiled_vertex_array)ELglLockArraysEXT(0,object_id->e3d_data->face_no);
++ if(use_compiled_vertex_array)ELglLockArraysEXT(0,object_id->e3d_data->face_no);
+ // gather statistics
+ if(object_id->e3d_data != cur_e3d){
+ #ifdef DEBUG
+@@ -284,7 +284,7 @@
+ glDrawArrays(GL_TRIANGLES,array_order[i].start,array_order[i].count);
+ }
+ }
+- //if(have_compiled_vertex_array)ELglUnlockArraysEXT();
++ //if(use_compiled_vertex_array)ELglUnlockArraysEXT();
+ glPopMatrix();//restore the scene
+ }
+
+@@ -338,7 +338,7 @@
+ draw_3d_object_shadow_detail(objects_list[l]);
+ }
+
+- if(have_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT();
+ if(have_vertex_buffers){
+ ELglBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+ }
+@@ -382,7 +382,7 @@
+
+ draw_3d_object_shadow_detail(object_id);
+
+- if(have_compiled_vertex_array)ELglUnlockArraysEXT();
++ if(use_compiled_vertex_array)ELglUnlockArraysEXT();
+ cur_e3d= NULL;
+ if(have_vertex_buffers){
+ ELglBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+--- elc/translate.c 2006-01-19 21:01:40.000000000 +0000
++++ elc/translate.c 2006-02-15 17:58:49.000000000 +0000
+@@ -351,6 +351,7 @@
+ fatal_error_str[10],
+ no_e3d_list[50],
+ enabled_vertex_arrays[50],
++ disabled_compiled_vertex_arrays[50],
+ disabled_point_particles[50],
+ disabled_particles_str[50],
+ invalid_video_mode[75],
+@@ -848,6 +849,7 @@
+ add_xml_identifier(misc,"multimat",multiple_material_same_texture,"Two or more materials with the same texture name!",sizeof(multiple_material_same_texture));
+ add_xml_identifier(misc,"resync",resync_server,"Resync with the server...",sizeof(resync_server));
+ add_xml_identifier(misc,"vertex",enabled_vertex_arrays,"Vertex Arrays enabled (memory hog on!)...",sizeof(enabled_vertex_arrays));
++ add_xml_identifier(misc,"compiled",disabled_compiled_vertex_arrays,"Compiled Vertex Arrays disabled.",sizeof(disabled_compiled_vertex_arrays));
+ add_xml_identifier(misc,"point",disabled_point_particles,"Point Particles disabled.",sizeof(disabled_point_particles));
+ add_xml_identifier(misc,"particles",disabled_particles_str,"Particles completely disabled!",sizeof(disabled_particles_str));
+ add_xml_identifier(misc,"net",failed_sdl_net_init,"Couldn't initialize net",sizeof(failed_sdl_net_init));
+--- elc/translate.h 2006-01-19 21:01:40.000000000 +0000
++++ elc/translate.h 2006-02-15 17:52:09.000000000 +0000
+@@ -451,6 +451,7 @@
+ fatal_error_str[10],
+ no_e3d_list[50],
+ enabled_vertex_arrays[50],
++ disabled_compiled_vertex_arrays[50],
+ disabled_point_particles[50],
+ disabled_particles_str[50],
+ invalid_video_mode[75],