• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版a4033e0be2da01153bd195f00cd2122dfec6f902 (tree)
时间2016-01-08 19:25:10
作者SUEHIRO <supersuehiro@user...>
CommiterSUEHIRO

Log Message

OpenGL 2.0 程度で動くようにした

更改概述

差异

Binary files a/lib/alpha/dll/ogg.dll and b/lib/alpha/dll/ogg.dll differ
Binary files a/lib/alpha/dll/sdlplugin.dll and b/lib/alpha/dll/sdlplugin.dll differ
--- a/main.ssz
+++ b/main.ssz
@@ -44,7 +44,7 @@ const bool SaveMemory = true;
4444
4545
4646 const bool IgnoreMostErrors = true;
47-const bool OpenGL = false;
47+const bool OpenGL = true;
4848
4949
5050
--- a/src/alpha/ogg/ogg/ogg.cpp
+++ b/src/alpha/ogg/ogg/ogg.cpp
@@ -21,61 +21,61 @@ class OggVorbis
2121 {
2222 OggVorbis_File _vf;
2323 FILE* _fh;
24- void fileClose()
24+ MEMBER void fileClose()
2525 {
26- if(_fh) fclose(_fh);
26+ if (_fh) fclose(_fh);
2727 _fh = nullptr;
2828 }
2929 public:
30- OggVorbis()
30+ MEMBER OggVorbis()
3131 {
3232 memset(&_vf, 0, sizeof(_vf));
3333 _fh = nullptr;
3434 }
35- ~OggVorbis()
35+ MEMBER ~OggVorbis()
3636 {
3737 clear();
3838 }
39- bool open(std::wstring file)
39+ MEMBER bool open(std::WSTR file)
4040 {
41- fileClose();
42- _wfopen_s(&_fh, file.c_str(), L"rb");
43- if(!_fh) return false;
44- if(ov_open(_fh, &_vf, nullptr, 0) < 0){
41+ clear();
42+ _wfopen_s(&_fh, file.c_str(), L("rb"));
43+ if (!_fh) return false;
44+ if (ov_open(_fh, &_vf, nullptr, 0) < 0) {
4545 fileClose();
4646 return false;
4747 }
4848 return true;
4949 }
50- void clear()
50+ MEMBER void clear()
5151 {
52- if(!_fh) return;
52+ if (!_fh) return;
5353 ov_clear(&_vf);
54- fileClose();
54+ _fh = nullptr;
5555 }
56- int64_t pcmTotal()
56+ MEMBER int64_t pcmTotal()
5757 {
5858 return ov_pcm_total(&_vf, -1);
5959 }
60- int32_t channels()
60+ MEMBER int32_t channels()
6161 {
6262 auto nc = ov_info(&_vf, -1);
6363 return nc ? nc->channels : -1;
6464 }
65- int32_t rate()
65+ MEMBER int32_t rate()
6666 {
6767 auto nc = ov_info(&_vf, -1);
6868 return nc ? nc->rate : -1;
6969 }
70- intptr_t read(int16_t* buffer, intptr_t length)
70+ MEMBER intptr_t read(int16_t* buffer, intptr_t length)
7171 {
7272 int current_section;
7373 auto rlen =
74- ov_read(&_vf, (char*)buffer, length*2, 0, 2, 1, &current_section);
75- if(rlen > 0) rlen /= 2;
74+ ov_read(&_vf, (char*)buffer, length * 2, 0, 2, 1, &current_section);
75+ if (rlen > 0) rlen /= 2;
7676 return rlen;
7777 }
78- int32_t seek(double time)
78+ MEMBER int32_t seek(double time)
7979 {
8080 return ov_time_seek(&_vf, time);
8181 }
--- a/src/alpha/sdlplugin/sdlplugin/sdlplugin.cpp
+++ b/src/alpha/sdlplugin/sdlplugin/sdlplugin.cpp
@@ -394,7 +394,13 @@ Joystick g_js;
394394 GLhandleARB g_mugenshader = 0;
395395 GLhandleARB g_mugenshaderFc = 0;
396396 GLhandleARB g_mugenshaderFcS = 0;
397-GLuint g_glpalette = 0;
397+static GLint g_uniformPal = 0;
398+static GLint g_uniformMsk = 0;
399+static GLint g_uniformNeg = 0;
400+static GLint g_uniformGray = 0;
401+static GLint g_uniformAdd = 0;
402+static GLint g_uniformMul = 0;
403+static GLint g_uniformColor = 0;
398404
399405
400406 void sndjoyinit()
@@ -2781,51 +2787,48 @@ TUserFunc(bool, InitMugenGl)
27812787 "gl_Position = ftransform();"
27822788 "}";
27832789 const GLchar* fragShader =
2784- "#version 140\n"
2790+ "uniform float a;"
27852791 "uniform sampler2D tex;"
2786- "uniform samplerBuffer pal;"
2792+ "uniform sampler1D pal;"
27872793 "uniform int msk;"
2788- "uniform float alp;"
27892794 "void main(void){"
2790- "int i = int(round(255.0*texture(tex, gl_TexCoord[0].st).r));"
2791- "vec4 c;"
2792- "gl_FragColor ="
2793- "i == msk ? vec4(0.0)"
2794- ": (c = texelFetchBuffer(pal, i), vec4(c.b, c.g, c.r, alp));"
2795+ "float r = texture2D(tex, gl_TexCoord[0].st).r;"
2796+ "vec4 c;"
2797+ "gl_FragColor ="
2798+ "int(255.0*r) == msk ? vec4(0.0)"
2799+ ": (c = texture1D(pal, r*0.9961), vec4(c.b, c.g, c.r, a));"
27952800 "}";
27962801 const GLchar* fragShaderFc =
2797- "#version 140\n"
2802+ "uniform float a;"
27982803 "uniform sampler2D tex;"
27992804 "uniform bool neg;"
28002805 "uniform float gray;"
28012806 "uniform vec3 add;"
28022807 "uniform vec3 mul;"
2803- "uniform float alp;"
28042808 "void main(void){"
2805- "vec4 c = texture(tex, gl_TexCoord[0].st);"
2806- "if(neg) c.rgb = vec3(1.0) - c.rgb;"
2807- "float gcol = (c.r + c.g + c.b) / 3.0;"
2808- "c.r += (gcol - c.r) * gray + add.r;"
2809- "c.g += (gcol - c.g) * gray + add.g;"
2810- "c.b += (gcol - c.b) * gray + add.b;"
2811- "c.rgb *= mul;"
2812- "c.a *= alp;"
2813- "gl_FragColor = c;"
2809+ "vec4 c = texture2D(tex, gl_TexCoord[0].st);"
2810+ "if(neg) c.rgb = vec3(1.0) - c.rgb;"
2811+ "float gcol = (c.r + c.g + c.b) / 3.0;"
2812+ "c.r += (gcol - c.r) * gray + add.r;"
2813+ "c.g += (gcol - c.g) * gray + add.g;"
2814+ "c.b += (gcol - c.b) * gray + add.b;"
2815+ "c.rgb *= mul;"
2816+ "c.a *= a;"
2817+ "gl_FragColor = c;"
28142818 "}";
28152819 const GLchar* fragShaderFcS =
2816- "#version 140\n"
2820+ "uniform float a;"
28172821 "uniform sampler2D tex;"
28182822 "uniform vec3 color;"
2819- "uniform float alp;"
28202823 "void main(void){"
2821- "vec4 c = texture(tex, gl_TexCoord[0].st);"
2822- "c.rgb = color * c.a;"
2823- "c.a *= alp;"
2824- "gl_FragColor = c;"
2824+ "vec4 c = texture2D(tex, gl_TexCoord[0].st);"
2825+ "c.rgb = color * c.a;"
2826+ "c.a *= a;"
2827+ "gl_FragColor = c;"
28252828 "}";
28262829 if(
2827- !GLEW_VERSION_3_1
2828- || !GLEW_ARB_vertex_shader || !GLEW_ARB_fragment_shader
2830+ !GLEW_ARB_shader_objects || !GLEW_ARB_vertex_shader
2831+ || !GLEW_ARB_fragment_shader
28292832 || g_mugenshader != 0 || g_mugenshaderFc != 0 || g_mugenshaderFcS != 0)
28302833 {
28312834 return false;
@@ -2841,61 +2844,67 @@ TUserFunc(bool, InitMugenGl)
28412844 int linked = 0;
28422845 GLint length;
28432846 length = strlen((char*)vertShader);
2844- glShaderSource(
2847+ glShaderSourceARB(
28452848 hVertShaderObject, 1, (const GLchar**)&vertShader, &length);
2846- glCompileShader(hVertShaderObject);
2849+ glCompileShaderARB(hVertShaderObject);
28472850 glGetObjectParameterivARB(
28482851 hVertShaderObject, GL_OBJECT_COMPILE_STATUS_ARB, &vert_compiled);
28492852 if(vert_compiled == 0) goto fail;
2850- glGenBuffers(1, &g_glpalette);
28512853
28522854 length = strlen((char*)fragShader);
2853- glShaderSource(
2855+ glShaderSourceARB(
28542856 hFragShaderObject, 1, (const GLchar**)&fragShader, &length);
2855- glCompileShader(hFragShaderObject);
2857+ glCompileShaderARB(hFragShaderObject);
28562858 glGetObjectParameterivARB(
28572859 hFragShaderObject, GL_OBJECT_COMPILE_STATUS_ARB, &frag_compiled);
28582860 if(frag_compiled == 0) goto fail;
28592861 glAttachObjectARB(g_mugenshader, hVertShaderObject);
28602862 glAttachObjectARB(g_mugenshader, hFragShaderObject);
2861- glLinkProgram(g_mugenshader);
2863+ glLinkProgramARB(g_mugenshader);
28622864 glGetObjectParameterivARB(
28632865 g_mugenshader, GL_OBJECT_LINK_STATUS_ARB, &linked);
28642866 if(linked == 0) goto fail;
2867+ g_uniformPal = glGetUniformLocationARB(g_mugenshader, "pal");
2868+ g_uniformMsk = glGetUniformLocationARB(g_mugenshader, "msk");
28652869
28662870 glDeleteObjectARB(hFragShaderObject);
28672871 hFragShaderObject =
28682872 glCreateShaderObjectARB(GL_FRAGMENT_SHADER);
28692873 length = strlen((char*)fragShaderFc);
2870- glShaderSource(
2874+ glShaderSourceARB(
28712875 hFragShaderObject, 1, (const GLchar**)&fragShaderFc, &length);
2872- glCompileShader(hFragShaderObject);
2876+ glCompileShaderARB(hFragShaderObject);
28732877 glGetObjectParameterivARB(
28742878 hFragShaderObject, GL_OBJECT_COMPILE_STATUS_ARB, &frag_compiled);
28752879 if(frag_compiled == 0) goto fail;
28762880 glAttachObjectARB(g_mugenshaderFc, hVertShaderObject);
28772881 glAttachObjectARB(g_mugenshaderFc, hFragShaderObject);
2878- glLinkProgram(g_mugenshaderFc);
2882+ glLinkProgramARB(g_mugenshaderFc);
28792883 glGetObjectParameterivARB(
28802884 g_mugenshaderFc, GL_OBJECT_LINK_STATUS_ARB, &linked);
28812885 if(linked == 0) goto fail;
2886+ g_uniformNeg = glGetUniformLocationARB(g_mugenshaderFc, "neg");
2887+ g_uniformGray = glGetUniformLocationARB(g_mugenshaderFc, "gray");
2888+ g_uniformAdd = glGetUniformLocationARB(g_mugenshaderFc, "add");
2889+ g_uniformMul = glGetUniformLocationARB(g_mugenshaderFc, "mul");
28822890
28832891 glDeleteObjectARB(hFragShaderObject);
28842892 hFragShaderObject =
28852893 glCreateShaderObjectARB(GL_FRAGMENT_SHADER);
28862894 length = strlen((char*)fragShaderFcS);
2887- glShaderSource(
2895+ glShaderSourceARB(
28882896 hFragShaderObject, 1, (const GLchar**)&fragShaderFcS, &length);
2889- glCompileShader(hFragShaderObject);
2897+ glCompileShaderARB(hFragShaderObject);
28902898 glGetObjectParameterivARB(
28912899 hFragShaderObject, GL_OBJECT_COMPILE_STATUS_ARB, &frag_compiled);
28922900 if(frag_compiled == 0) goto fail;
28932901 glAttachObjectARB(g_mugenshaderFcS, hVertShaderObject);
28942902 glAttachObjectARB(g_mugenshaderFcS, hFragShaderObject);
2895- glLinkProgram(g_mugenshaderFcS);
2903+ glLinkProgramARB(g_mugenshaderFcS);
28962904 glGetObjectParameterivARB(
28972905 g_mugenshaderFcS, GL_OBJECT_LINK_STATUS_ARB, &linked);
28982906 if(linked == 0) goto fail;
2907+ g_uniformColor = glGetUniformLocationARB(g_mugenshaderFcS, "color");
28992908
29002909 glDeleteObjectARB(hVertShaderObject);
29012910 glDeleteObjectARB(hFragShaderObject);
@@ -3103,28 +3112,28 @@ void renderMugenGl(
31033112 glPushMatrix();
31043113 glTranslated(0, g_h, 0);
31053114 if(alpha == -1){
3106- glUniform1f(glGetUniformLocation(shader, "alp"), 1.0);
3115+ glUniform1fARB(glGetUniformLocation(shader, "a"), 1.0);
31073116 glBlendFunc(GL_SRC_ALPHA, GL_ONE);
31083117 drawTile(
31093118 r.w, r.h, x, y, tl, xtopscl, xbotscl, yscl, vscl, rasterxadd,
31103119 angle, rcx, rcy, 1, 1, 1, 1);
31113120 }else if(alpha == -2){
3112- glUniform1f(glGetUniformLocation(shader, "alp"), 1.0);
3121+ glUniform1fARB(glGetUniformLocation(shader, "a"), 1.0);
31133122 glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
31143123 drawTile(
31153124 r.w, r.h, x, y, tl, xtopscl, xbotscl, yscl, vscl, rasterxadd,
31163125 angle, rcx, rcy, 1, 1, 1, 1);
31173126 }else if(alpha <= 0){
31183127 }else if(alpha < 255){
3119- glUniform1f(
3120- glGetUniformLocation(shader, "alp"),
3128+ glUniform1fARB(
3129+ glGetUniformLocation(shader, "a"),
31213130 (GLfloat)alpha / 255.0f);
31223131 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
31233132 drawTile(
31243133 r.w, r.h, x, y, tl, xtopscl, xbotscl, yscl, vscl, rasterxadd,
31253134 angle, rcx, rcy, 1, 1, 1, (GLfloat)alpha / 255.0f);
31263135 }else if(alpha < 512){
3127- glUniform1f(glGetUniformLocation(shader, "alp"), 1.0);
3136+ glUniform1fARB(glGetUniformLocation(shader, "a"), 1.0);
31283137 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
31293138 drawTile(
31303139 r.w, r.h, x, y, tl, xtopscl, xbotscl, yscl, vscl, rasterxadd,
@@ -3133,8 +3142,8 @@ void renderMugenGl(
31333142 int src = alpha & 0xff;
31343143 int dst = (alpha & 0x3fc00) >> 10;
31353144 if(dst < 255){
3136- glUniform1f(
3137- glGetUniformLocation(shader, "alp"),
3145+ glUniform1fARB(
3146+ glGetUniformLocation(shader, "a"),
31383147 1.0f - (GLfloat)dst / 255.0f);
31393148 glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);
31403149 drawTile(
@@ -3142,8 +3151,8 @@ void renderMugenGl(
31423151 angle, rcx, rcy, 1, 1, 1, 1.0f - (GLfloat)dst / 255.0f);
31433152 }
31443153 if(src > 0){
3145- glUniform1f(
3146- glGetUniformLocation(shader, "alp"), (GLfloat)src / 255.0f);
3154+ glUniform1fARB(
3155+ glGetUniformLocation(shader, "a"), (GLfloat)src / 255.0f);
31473156 glBlendFunc(GL_SRC_ALPHA, GL_ONE);
31483157 drawTile(
31493158 r.w, r.h, x, y, tl, xtopscl, xbotscl, yscl, vscl, rasterxadd,
@@ -3183,25 +3192,36 @@ TUserFunc(
31833192 rcy = -rcy;
31843193 if(yscl < 0) y = -y;
31853194 y += rcy;
3186- glBindBuffer(GL_TEXTURE_BUFFER, g_glpalette);
3187- glBufferData(GL_TEXTURE_BUFFER, 4*256, ppal, GL_STATIC_DRAW);
3188- glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA8, g_glpalette);
3189- glUniform1i(glGetUniformLocation(g_mugenshader, "pal"), 1);
3190- glUseProgram(g_mugenshader);
3191- glUniform1i(glGetUniformLocation(g_mugenshader, "msk"), mask);
3195+ glUseProgramObjectARB(g_mugenshader);
3196+ glUniform1iARB(g_uniformPal, 1);
3197+ glUniform1iARB(g_uniformMsk, mask);
3198+ glEnable(GL_TEXTURE_1D);
31923199 glEnable(GL_TEXTURE_2D);
31933200 glBindTexture(GL_TEXTURE_2D, texid);
31943201 glDisable(GL_DEPTH_TEST);
31953202 glEnable(GL_SCISSOR_TEST);
31963203 glScissor(dstr->x, g_h - (dstr->y+dstr->h), dstr->w, dstr->h);
31973204 //
3205+ glActiveTexture(GL_TEXTURE1);
3206+ uint32_t paltex;
3207+ glGenTextures(1, &paltex);
3208+ glBindTexture(GL_TEXTURE_1D, paltex);
3209+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
3210+ glTexImage1D(
3211+ GL_TEXTURE_1D, 0, GL_RGBA, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, ppal);
3212+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
3213+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
3214+ glActiveTexture(GL_TEXTURE0);
3215+ glBindTexture(GL_TEXTURE_2D, texid);
31983216 renderMugenGl(
31993217 rcy, rcx, alpha, angle, rasterxadd, vscl, yscl, xbotscl, xtopscl,
32003218 tl, y, x, r, g_mugenshader);
3219+ glDeleteTextures(1, &paltex);
32013220 //
32023221 glDisable(GL_SCISSOR_TEST);
32033222 glDisable(GL_TEXTURE_2D);
3204- glUseProgram(0);
3223+ glDisable(GL_TEXTURE_1D);
3224+ glUseProgramObjectARB(0);
32053225 return true;
32063226 }
32073227
@@ -3235,20 +3255,16 @@ TUserFunc(
32353255 rcy = -rcy;
32363256 if(yscl < 0) y = -y;
32373257 y += rcy;
3238- glUseProgram(g_mugenshaderFc);
3239- glUniform1i(glGetUniformLocation(g_mugenshaderFc, "neg"), neg);
3240- glUniform1f(glGetUniformLocation(g_mugenshaderFc, "gray"), 1 - color);
3241- glUniform3f(
3242- glGetUniformLocation(g_mugenshaderFc, "add"), addr, addg, addb);
3243- glUniform3f(
3244- glGetUniformLocation(g_mugenshaderFc, "mul"), mulr, mulg, mulb);
3258+ glUniform1iARB(g_uniformNeg, neg);
3259+ glUniform1fARB(g_uniformGray, 1 - color);
3260+ glUniform3fARB(g_uniformAdd, addr, addg, addb);
3261+ glUniform3fARB(g_uniformMul, mulr, mulg, mulb);
32453262 glEnable(GL_TEXTURE_2D);
32463263 glBindTexture(GL_TEXTURE_2D, texid);
32473264 glDisable(GL_DEPTH_TEST);
32483265 glEnable(GL_SCISSOR_TEST);
32493266 glScissor(dstr->x, g_h - (dstr->y+dstr->h), dstr->w, dstr->h);
32503267 //
3251- glMatrixMode(GL_PROJECTION);
32523268 glPushMatrix();
32533269 glOrtho(0, g_w, 0, g_h, -1, 1);
32543270 glPopMatrix();
@@ -3258,7 +3274,7 @@ TUserFunc(
32583274 //
32593275 glDisable(GL_SCISSOR_TEST);
32603276 glDisable(GL_TEXTURE_2D);
3261- glUseProgram(0);
3277+ glUseProgramObjectARB(0);
32623278 return true;
32633279 }
32643280
@@ -3291,11 +3307,10 @@ TUserFunc(
32913307 rcy = -rcy;
32923308 if(yscl < 0) y = -y;
32933309 y += rcy;
3294- glUseProgram(g_mugenshaderFcS);
3295- glUniform3f(
3296- glGetUniformLocation(g_mugenshaderFcS, "color"),
3297- (float)(color>>16&0xff)/255, (float)(color>>8&0xff)/255,
3298- (float)(color&0xff)/255);
3310+ glUseProgramObjectARB(g_mugenshaderFcS);
3311+ glUniform3fARB(
3312+ g_uniformColor, (float)(color >> 16 & 0xff) / 255, (float)(color >> 8 & 0xff) / 255,
3313+ (float)(color & 0xff) / 255);
32993314 glEnable(GL_TEXTURE_2D);
33003315 glBindTexture(GL_TEXTURE_2D, texid);
33013316 glDisable(GL_DEPTH_TEST);
@@ -3308,7 +3323,7 @@ TUserFunc(
33083323 //
33093324 glDisable(GL_SCISSOR_TEST);
33103325 glDisable(GL_TEXTURE_2D);
3311- glUseProgram(0);
3326+ glUseProgramObjectARB(0);
33123327 return true;
33133328 }
33143329
--- a/ssz/ikemen.ssz
+++ b/ssz/ikemen.ssz
@@ -189,7 +189,7 @@ void main()
189189 }
190190 /?/*.cfg.OpenGL:
191191 if(!.sdl.InitMugenGl(::)){
192- .error!.self?("OpenGL 3.1 の初期設定に失敗");
192+ .error!.self?("OpenGL の初期設定に失敗");
193193 ret;
194194 }
195195 /*?*/
--- a/ssz/sound.ssz
+++ b/ssz/sound.ssz
@@ -158,7 +158,7 @@ public &Sound
158158 public bool loop_ = false, lowpriority = false;
159159 public float freqmul = 1.0;
160160 public float fidx = 0.0;
161- const float frametime = 1.0 / 44100.0;
161+ const float frametime = 1.0 / (float).sdl.SNDFREQ;
162162 public void setVol(int v)
163163 {
164164 branch{
--- a/ssz/statebuilder.ssz
+++ b/ssz/statebuilder.ssz
@@ -7829,7 +7829,7 @@ public &StateBuilder
78297829 `state.ctrlList[-1].typ = .CtrlTy::Explod;
78307830 cond .s.equ(s, "gamemakeanim"):
78317831 `state.ctrlList[-1].typ = .CtrlTy::GameMakeAnim;
7832- cond .s.equ(s, "modifyexplod"):
7832+ cond .s.equ(s, "modifyexplod"):
78337833 `state.ctrlList[-1].typ = .CtrlTy::ModifyExplod;
78347834 cond .s.equ(s, "explodbindtime"):
78357835 `state.ctrlList[-1].typ = .CtrlTy::ExplodBindTime;
@@ -7851,7 +7851,7 @@ public &StateBuilder
78517851 `state.ctrlList[-1].typ = .CtrlTy::AngleSet;
78527852 cond .s.equ(s, "palfx"):
78537853 `state.ctrlList[-1].typ = .CtrlTy::PalFX;
7854- cond .s.equ(s, "allpalfx"):
7854+ cond .s.equ(s, "allpalfx"):
78557855 `state.ctrlList[-1].typ = .CtrlTy::AllPalFX;
78567856 cond .s.equ(s, "bgpalfx"):
78577857 `state.ctrlList[-1].typ = .CtrlTy::BGPalFX;
@@ -7983,7 +7983,6 @@ public &StateBuilder
79837983 ? "" : .com.FileReadError;
79847984 }] > 0)
79857985 {
7986- if(.cfg.IgnoreMostErrors) ret "";
79877986 ret def + ":"\r\n + error;
79887987 }
79897988 ^/char fn = st;