Revision | 7b296aec761dad92651fff03feaea13652cf00b0 (tree) |
---|---|
Time | 2016-01-20 01:43:07 |
Author | SUEHIRO <supersuehiro@user...> |
Commiter | SUEHIRO |
sanpを修正
@@ -1054,8 +1054,6 @@ void appendToClipboard(int p, ^/char formatText, ^&.Var vars) | ||
1054 | 1054 | `snapfx = false; |
1055 | 1055 | `snapfy = false; |
1056 | 1056 | `snapt = 0; |
1057 | - `xoff = 0.0; | |
1058 | - `yoff = 0.0; | |
1059 | 1057 | `fall.clear(); |
1060 | 1058 | `player = -1; |
1061 | 1059 | `fallf = false; |
@@ -1063,6 +1061,11 @@ void appendToClipboard(int p, ^/char formatText, ^&.Var vars) | ||
1063 | 1061 | `p2getp1state = false; |
1064 | 1062 | `forcestand = false; |
1065 | 1063 | } |
1064 | + public void clearOff() | |
1065 | + { | |
1066 | + `xoff = 0.0; | |
1067 | + `yoff = 0.0; | |
1068 | + } | |
1066 | 1069 | /float getYaccel() |
1067 | 1070 | { |
1068 | 1071 | ret .m.isnan(`yaccel) ? 0.35 : `yaccel; |
@@ -1191,6 +1194,7 @@ void appendToClipboard(int p, ^/char formatText, ^&.Var vars) | ||
1191 | 1194 | `mov = .MovTy::I; |
1192 | 1195 | `hit.clear(); |
1193 | 1196 | `hb.clear(); |
1197 | + `hb.clearOff(); | |
1194 | 1198 | loop{index i=0;do:`ho[i].clear();while ++i<#`ho:} |
1195 | 1199 | `mctyp = .MoveContact::Hit; |
1196 | 1200 | `mctime = 0; |
@@ -3038,61 +3042,55 @@ public &Char | ||
3038 | 3042 | `stVal.mov = .MovTy::H; |
3039 | 3043 | if(`sysivar[.iHITPAUSETIME] > 0) `stVal.clearWw(); |
3040 | 3044 | `sysivar[.iHITPAUSETIME] = 0; |
3041 | - if(#`stVal.hb.by > 0){ | |
3042 | - ^`self c; | |
3043 | - double snapx = 0.0/0.0; | |
3044 | - double snapy = 0.0/0.0; | |
3045 | - if(#(c = .players.get(`stVal.hb.by[-1].id)) > 0){ | |
3046 | - int snapf = | |
3047 | - `stVal.hb.snapf * (c~facing * c~p1facing < 0 ? (int)-1 : 1); | |
3048 | - if(!.m.isnan(`stVal.hb.mindistx)) branch{ | |
3049 | - cond snapf < 0: | |
3050 | - if(`sysfvar[.fX] > (`stVal.hb.snapx - `stVal.hb.mindistx)){ | |
3051 | - snapx = `stVal.hb.snapx - `stVal.hb.mindistx; | |
3052 | - } | |
3053 | - else: | |
3054 | - if(`sysfvar[.fX] < (`stVal.hb.snapx + `stVal.hb.mindistx)){ | |
3055 | - snapx = `stVal.hb.snapx + `stVal.hb.mindistx; | |
3056 | - } | |
3057 | - } | |
3058 | - if(!.m.isnan(`stVal.hb.maxdistx)) branch{ | |
3059 | - cond snapf < 0: | |
3060 | - if(`sysfvar[.fX] < (`stVal.hb.snapx - `stVal.hb.maxdistx)){ | |
3061 | - snapx = `stVal.hb.snapx - `stVal.hb.maxdistx; | |
3062 | - } | |
3063 | - else: | |
3064 | - if(`sysfvar[.fX] > (`stVal.hb.snapx + `stVal.hb.maxdistx)){ | |
3065 | - snapx = `stVal.hb.snapx + `stVal.hb.maxdistx; | |
3066 | - } | |
3067 | - } | |
3068 | - if(!`stVal.hb.guarded || `stVal.typ == .StTy::A){ | |
3069 | - if( | |
3070 | - !.m.isnan(`stVal.hb.mindisty) | |
3071 | - && `sysfvar[.fY] < (`stVal.hb.snapy + `stVal.hb.mindisty)) | |
3072 | - { | |
3073 | - snapy = `stVal.hb.snapy + `stVal.hb.mindisty; | |
3074 | - } | |
3075 | - if( | |
3076 | - !.m.isnan(`stVal.hb.maxdisty) | |
3077 | - && `sysfvar[.fY] > (`stVal.hb.snapy + `stVal.hb.maxdisty)) | |
3078 | - { | |
3079 | - snapy = `stVal.hb.snapy + `stVal.hb.maxdisty; | |
3080 | - } | |
3081 | - } | |
3082 | - if(`stVal.hb.snapt != 0){ | |
3083 | - `setBindToId(c<>=); | |
3084 | - `setBindTime(`stVal.hb.snapt); | |
3085 | - `sysivar[.iBINDFACING] = 0; | |
3086 | - `sysfvar[.fBINDPOSX] = | |
3087 | - `stVal.hb.snapfx ? `stVal.hb.mindistx : 0.0/0.0; | |
3088 | - `sysfvar[.fBINDPOSY] = | |
3089 | - `stVal.hb.snapfy ? `stVal.hb.mindisty : 0.0/0.0; | |
3090 | - } | |
3045 | + double snapx = 0.0/0.0; | |
3046 | + double snapy = 0.0/0.0; | |
3047 | + if(!.m.isnan(`stVal.hb.mindistx)) branch{ | |
3048 | + cond `stVal.hb.snapf < 0: | |
3049 | + if(`sysfvar[.fX] > (`stVal.hb.snapx - `stVal.hb.mindistx)){ | |
3050 | + snapx = `stVal.hb.snapx - `stVal.hb.mindistx; | |
3051 | + } | |
3052 | + else: | |
3053 | + if(`sysfvar[.fX] < (`stVal.hb.snapx + `stVal.hb.mindistx)){ | |
3054 | + snapx = `stVal.hb.snapx + `stVal.hb.mindistx; | |
3055 | + } | |
3056 | + } | |
3057 | + if(!.m.isnan(`stVal.hb.maxdistx)) branch{ | |
3058 | + cond `stVal.hb.snapf < 0: | |
3059 | + if(`sysfvar[.fX] < (`stVal.hb.snapx - `stVal.hb.maxdistx)){ | |
3060 | + snapx = `stVal.hb.snapx - `stVal.hb.maxdistx; | |
3061 | + } | |
3062 | + else: | |
3063 | + if(`sysfvar[.fX] > (`stVal.hb.snapx + `stVal.hb.maxdistx)){ | |
3064 | + snapx = `stVal.hb.snapx + `stVal.hb.maxdistx; | |
3065 | + } | |
3066 | + } | |
3067 | + if(!`stVal.hb.guarded || `stVal.typ == .StTy::A){ | |
3068 | + if( | |
3069 | + !.m.isnan(`stVal.hb.mindisty) | |
3070 | + && `sysfvar[.fY] < (`stVal.hb.snapy + `stVal.hb.mindisty)) | |
3071 | + { | |
3072 | + snapy = `stVal.hb.snapy + `stVal.hb.mindisty; | |
3073 | + } | |
3074 | + if( | |
3075 | + !.m.isnan(`stVal.hb.maxdisty) | |
3076 | + && `sysfvar[.fY] > (`stVal.hb.snapy + `stVal.hb.maxdisty)) | |
3077 | + { | |
3078 | + snapy = `stVal.hb.snapy + `stVal.hb.maxdisty; | |
3079 | + } | |
3080 | + } | |
3081 | + if(!.m.isnan(snapx)) `stVal.hb.xoff = snapx - `sysfvar[.fX]; | |
3082 | + if(!.m.isnan(snapy)) `stVal.hb.yoff = snapy - `sysfvar[.fY]; | |
3083 | + ^`self c; | |
3084 | + if(#`stVal.hb.by > 0 && #(c = .players.get(`stVal.hb.by[-1].id)) > 0){ | |
3085 | + if(`stVal.hb.snapt != 0){ | |
3086 | + `setBindToId(c<>=); | |
3087 | + `setBindTime(`stVal.hb.snapt); | |
3088 | + `sysivar[.iBINDFACING] = 0; | |
3089 | + `sysfvar[.fBINDPOSX] = | |
3090 | + `stVal.hb.snapfx ? `stVal.hb.mindistx : 0.0/0.0; | |
3091 | + `sysfvar[.fBINDPOSY] = | |
3092 | + `stVal.hb.snapfy ? `stVal.hb.mindisty : 0.0/0.0; | |
3091 | 3093 | } |
3092 | - `stVal.hb.snapx = snapx; | |
3093 | - `stVal.hb.snapy = snapy; | |
3094 | - `stVal.hb.xoff = !.m.isnan(snapx) ? snapx - `sysfvar[.fX] : 0.0; | |
3095 | - `stVal.hb.yoff = !.m.isnan(snapy) ? snapy - `sysfvar[.fY] : 0.0; | |
3096 | 3094 | } |
3097 | 3095 | if(`ho >= 0 && `stVal.ho[`ho].forceair != 0) `stVal.typ = .StTy::A; |
3098 | 3096 | branch{ |
@@ -3611,11 +3609,13 @@ public &Char | ||
3611 | 3609 | `drawX += c~drawX - c~sysfvar[.fX]; |
3612 | 3610 | `ticOldX += c~ticOldX - c~sysfvar[.fX]; |
3613 | 3611 | `pushed |= c~pushed; |
3612 | + `stVal.hb.xoff = 0.0; | |
3614 | 3613 | } |
3615 | 3614 | if(!.m.isnan(`sysfvar[.fBINDPOSY])){ |
3616 | 3615 | `setY(c~sysfvar[.fY] + `sysfvar[.fBINDPOSY]); |
3617 | 3616 | `drawY += c~drawY - c~sysfvar[.fY]; |
3618 | 3617 | `ticOldY += c~ticOldY - c~sysfvar[.fY]; |
3618 | + `stVal.hb.yoff = 0.0; | |
3619 | 3619 | } |
3620 | 3620 | if(#`sysivar[.iBINDFACING] == 1) branch{ |
3621 | 3621 | cond `sysivar[.iBINDFACING] > 0: `setFacing(c~facing); |
@@ -3652,6 +3652,16 @@ public &Char | ||
3652 | 3652 | if(`acttmp > 0){ |
3653 | 3653 | if(#`ani > 0) `ani~ani.updateSprite(); |
3654 | 3654 | if(!`isBound()) `bind(); |
3655 | + if(`stVal.mov == .MovTy::H){ | |
3656 | + if(`stVal.hb.xoff != 0.0){ | |
3657 | + `setPosX(`sysfvar[.fX] + `stVal.hb.xoff); | |
3658 | + `stVal.hb.xoff = 0.0; | |
3659 | + } | |
3660 | + if(`stVal.hb.yoff != 0.0){ | |
3661 | + `setPosY(`sysfvar[.fY] + `stVal.hb.yoff); | |
3662 | + `stVal.hb.yoff = 0.0; | |
3663 | + } | |
3664 | + } | |
3655 | 3665 | } |
3656 | 3666 | if(`stVal.mov == .MovTy::H){ |
3657 | 3667 | if(.super <= 0 && .pause <= 0){ |
@@ -6246,6 +6256,7 @@ public void PlayerList!&Char?::clsn(&.Char pyr=, bool pro) | ||
6246 | 6256 | `pyr.stVal.hb.airtype -= `pyr.stVal.hb.airtype*2 - 3; |
6247 | 6257 | } |
6248 | 6258 | } |
6259 | + if(pro == 0 && by.facing * by.p1facing < 0) `pyr.stVal.hb.snapf *= -1; | |
6249 | 6260 | } |
6250 | 6261 | ret true; |
6251 | 6262 | } |
@@ -6688,29 +6699,12 @@ void commandUpdate() | ||
6688 | 6699 | r.cmd[i].step(r.facing, r.key < 0, hp, buftime + (int)hp); |
6689 | 6700 | i++; |
6690 | 6701 | while i < #r.cmd:} |
6691 | - index cc = | |
6692 | - r.key < 0 && r.roundState() == 2 && .m.rand(0, .com.com[i]+16) > 16 | |
6693 | - ? .m.rand(0, #r.cmd[r.stVal.playerno].commands-1) : -1; | |
6694 | - p:<-:<-[void(c=){ | |
6695 | - if(c.helperindex < 0) ret; | |
6696 | - if(r.key < 0) c.cpucmd = cc; | |
6697 | - if(act){ | |
6698 | - branch{ | |
6699 | - cond .m.isnan(c.stVal.hb.snapx): | |
6700 | - c.stVal.hb.xoff = 0.0; | |
6701 | - else: | |
6702 | - c.setPosX(c.stVal.hb.snapx); | |
6703 | - c.stVal.hb.snapx = 0.0/0.0; | |
6704 | - } | |
6705 | - branch{ | |
6706 | - cond .m.isnan(c.stVal.hb.snapy): | |
6707 | - c.stVal.hb.yoff = 0.0; | |
6708 | - else: | |
6709 | - c.setPosY(c.stVal.hb.snapy); | |
6710 | - c.stVal.hb.snapy = 0.0/0.0; | |
6711 | - } | |
6712 | - } | |
6713 | - }]; | |
6702 | + if(r.key < 0){ | |
6703 | + index cc = | |
6704 | + r.roundState() == 2 && .m.rand(0, .com.com[i]+16) > 16 | |
6705 | + ? .m.rand(0, #r.cmd[r.stVal.playerno].commands-1) : -1; | |
6706 | + p:<-:<-[void(c=){if(c.helperindex >= 0) c.cpucmd = cc;}]; | |
6707 | + } | |
6714 | 6708 | }]; |
6715 | 6709 | }]; |
6716 | 6710 | continue: |