@@ -2839,7 +2839,6 @@ func (c *CharCompiler) expValue(out *BytecodeExp, in *string,
28392839 return nil
28402840 }
28412841 if err := eqne (hda ); err != nil {
2842- //if sys.cgi[c.playerNo].ikemenverF > 0 || !sys.ignoreMostErrors {
28432842 if c .zssMode || ! sys .ignoreMostErrors {
28442843 return bvNone (), err
28452844 }
@@ -3778,10 +3777,16 @@ func (c *CharCompiler) expValue(out *BytecodeExp, in *string,
37783777 case "info.displayname" :
37793778 opc = OC_const_stagevar_info_displayname
37803779 isStr = true
3781- case "info.ikemenversion" :
3782- opc = OC_const_stagevar_info_ikemenversion
3783- case "info.mugenversion" :
3784- opc = OC_const_stagevar_info_mugenversion
3780+ case "info.ikemenversion.major" :
3781+ opc = OC_const_stagevar_info_ikemenversion_major
3782+ case "info.ikemenversion.minor" :
3783+ opc = OC_const_stagevar_info_ikemenversion_minor
3784+ case "info.ikemenversion.patch" :
3785+ opc = OC_const_stagevar_info_ikemenversion_patch
3786+ case "info.mugenversion.major" :
3787+ opc = OC_const_stagevar_info_mugenversion_major
3788+ case "info.mugenversion.minor" :
3789+ opc = OC_const_stagevar_info_mugenversion_minor
37853790 case "info.name" :
37863791 opc = OC_const_stagevar_info_name
37873792 isStr = true
@@ -4652,7 +4657,17 @@ func (c *CharCompiler) expValue(out *BytecodeExp, in *string,
46524657 case "hitoverridden" :
46534658 out .append (OC_ex_ , OC_ex_hitoverridden )
46544659 case "ikemenversion" :
4655- out .append (OC_ex_ , OC_ex_ikemenversion )
4660+ c .token = c .tokenizer (in )
4661+ switch c .token {
4662+ case "major" :
4663+ out .append (OC_ex_ , OC_ex_ikemenversion_major )
4664+ case "minor" :
4665+ out .append (OC_ex_ , OC_ex_ikemenversion_minor )
4666+ case "patch" :
4667+ out .append (OC_ex_ , OC_ex_ikemenversion_patch )
4668+ default :
4669+ return bvNone (), Error ("Invalid IkemenVersion argument: " + c .token )
4670+ }
46564671 case "incustomanim" :
46574672 out .append (OC_ex_ , OC_ex_incustomanim )
46584673 case "incustomstate" :
@@ -5009,7 +5024,15 @@ func (c *CharCompiler) expValue(out *BytecodeExp, in *string,
50095024 return bvNone (), err
50105025 }
50115026 case "mugenversion" :
5012- out .append (OC_ex_ , OC_ex_mugenversion )
5027+ c .token = c .tokenizer (in )
5028+ switch c .token {
5029+ case "major" :
5030+ out .append (OC_ex_ , OC_ex_mugenversion_major )
5031+ case "minor" :
5032+ out .append (OC_ex_ , OC_ex_mugenversion_minor )
5033+ default :
5034+ return bvNone (), Error ("Invalid MugenVersion argument: " + c .token )
5035+ }
50135036 case "numplayer" :
50145037 out .append (OC_ex_ , OC_ex_numplayer )
50155038 case "pausetime" :
@@ -6308,7 +6331,6 @@ func (c *CharCompiler) paramSpace(is IniSection, sc *StateControllerBase, id byt
63086331 case "screen" :
63096332 spc = Space_screen
63106333 default :
6311- //if sys.cgi[c.playerNo].ikemenverF > 0 && !sys.ignoreMostErrors {
63126334 if c .zssMode && ! sys .ignoreMostErrors {
63136335 return Error ("Invalid space type: " + data )
63146336 } else {
@@ -8113,25 +8135,12 @@ func (c *CharCompiler) Compile(pn int, def string, constants map[string]float32)
81138135 // Read info section for the Mugen/Ikemen version of the character
81148136 if info {
81158137 info = false
8116- var ok bool
8117- var str string
8118- // Clear then read MugenVersion
8119- sys .cgi [pn ].mugenver = [2 ]uint16 {}
8120- sys .cgi [pn ].mugenverF = 0
8121- if str , ok = is ["mugenversion" ]; ok {
8122- sys .cgi [pn ].mugenver , sys .cgi [pn ].mugenverF = ParseMugenVersion (str )
8123- }
8124- // Clear then read IkemenVersion
8125- sys .cgi [pn ].ikemenver = [3 ]uint16 {}
8126- sys .cgi [pn ].ikemenverF = 0
8127- if str , ok = is ["ikemenversion" ]; ok {
8128- sys .cgi [pn ].ikemenver , sys .cgi [pn ].ikemenverF = ParseIkemenVersion (str )
8129- }
8138+ // Read MugenVersion and IkemenVersion
8139+ sys .cgi [pn ].mugenver = ParseMugenVersion (is ["mugenversion" ])
8140+ sys .cgi [pn ].ikemenver = ParseIkemenVersion (is ["ikemenversion" ])
81308141 // Ikemen characters adopt Mugen 1.1 version as a safeguard
81318142 if sys .cgi [pn ].ikemenver [0 ] != 0 || sys .cgi [pn ].ikemenver [1 ] != 0 {
8132- sys .cgi [pn ].mugenver [0 ] = 1
8133- sys .cgi [pn ].mugenver [1 ] = 1
8134- sys .cgi [pn ].mugenverF = 1.1
8143+ sys .cgi [pn ].mugenver = [2 ]uint16 {1 , 1 }
81358144 }
81368145 }
81378146 case "files" :
0 commit comments