⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cl_tent.java

📁 Jake2是一个Java 3D游戏引擎.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                }            };            s[i].thinkinterval = 1;            s[i].nextthink = Globals.cl.time;        } else // no free sustains        {            // FIXME - read the stuff anyway            MSG.ReadPos(Globals.net_message, pos);        }    }    // stack variable    // pos    static void ParseNuke() {        int i;        cl_sustain_t[] s;        cl_sustain_t free_sustain;        free_sustain = null;        s = cl_sustains;        for (i = 0; i < MAX_SUSTAINS; i++) {            if (s[i].id == 0) {                free_sustain = s[i];                break;            }        }        if (free_sustain != null) {            s[i].id = 21000;            MSG.ReadPos(Globals.net_message, s[i].org);            s[i].endtime = Globals.cl.time + 1000;            s[i].think = new cl_sustain_t.ThinkAdapter() {                void think(cl_sustain_t self) {                    CL_newfx.Nukeblast(self);                }            };            s[i].thinkinterval = 1;            s[i].nextthink = Globals.cl.time;        } else // no free sustains        {            // FIXME - read the stuff anyway            MSG.ReadPos(Globals.net_message, pos);        }    }    //	  ROGUE    //	  =============    /*     * ================= CL_ParseTEnt =================     */    static int[] splash_color = { 0x00, 0xe0, 0xb0, 0x50, 0xd0, 0xe0, 0xe8 };    // stack variable    // pos, dir    private static final float[] pos2 = {0, 0, 0};    static void ParseTEnt() {        int type;        explosion_t ex;        int cnt;        int color;        int r;        int ent;        int magnitude;        type = MSG.ReadByte(Globals.net_message);        switch (type) {        case Defines.TE_BLOOD: // bullet hitting flesh            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            CL_fx.ParticleEffect(pos, dir, 0xe8, 60);            break;        case Defines.TE_GUNSHOT: // bullet hitting wall        case Defines.TE_SPARKS:        case Defines.TE_BULLET_SPARKS:            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            if (type == Defines.TE_GUNSHOT)                CL_fx.ParticleEffect(pos, dir, 0, 40);            else                CL_fx.ParticleEffect(pos, dir, 0xe0, 6);            if (type != Defines.TE_SPARKS) {                SmokeAndFlash(pos);                // impact sound                cnt = Lib.rand() & 15;                if (cnt == 1)                    S.StartSound(pos, 0, 0, cl_sfx_ric1, 1, Defines.ATTN_NORM,                            0);                else if (cnt == 2)                    S.StartSound(pos, 0, 0, cl_sfx_ric2, 1, Defines.ATTN_NORM,                            0);                else if (cnt == 3)                    S.StartSound(pos, 0, 0, cl_sfx_ric3, 1, Defines.ATTN_NORM,                            0);            }            break;        case Defines.TE_SCREEN_SPARKS:        case Defines.TE_SHIELD_SPARKS:            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            if (type == Defines.TE_SCREEN_SPARKS)                CL_fx.ParticleEffect(pos, dir, 0xd0, 40);            else                CL_fx.ParticleEffect(pos, dir, 0xb0, 40);            //FIXME : replace or remove this sound            S.StartSound(pos, 0, 0, cl_sfx_lashit, 1, Defines.ATTN_NORM, 0);            break;        case Defines.TE_SHOTGUN: // bullet hitting wall            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            CL_fx.ParticleEffect(pos, dir, 0, 20);            SmokeAndFlash(pos);            break;        case Defines.TE_SPLASH: // bullet hitting water            cnt = MSG.ReadByte(Globals.net_message);            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            r = MSG.ReadByte(Globals.net_message);            if (r > 6)                color = 0x00;            else                color = splash_color[r];            CL_fx.ParticleEffect(pos, dir, color, cnt);            if (r == Defines.SPLASH_SPARKS) {                r = Lib.rand() & 3;                if (r == 0)                    S.StartSound(pos, 0, 0, cl_sfx_spark5, 1,                            Defines.ATTN_STATIC, 0);                else if (r == 1)                    S.StartSound(pos, 0, 0, cl_sfx_spark6, 1,                            Defines.ATTN_STATIC, 0);                else                    S.StartSound(pos, 0, 0, cl_sfx_spark7, 1,                            Defines.ATTN_STATIC, 0);            }            break;        case Defines.TE_LASER_SPARKS:            cnt = MSG.ReadByte(Globals.net_message);            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            color = MSG.ReadByte(Globals.net_message);            CL_fx.ParticleEffect2(pos, dir, color, cnt);            break;        // RAFAEL        case Defines.TE_BLUEHYPERBLASTER:            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadPos(Globals.net_message, dir);            CL_fx.BlasterParticles(pos, dir);            break;        case Defines.TE_BLASTER: // blaster hitting wall            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            CL_fx.BlasterParticles(pos, dir);            ex = AllocExplosion();            Math3D.VectorCopy(pos, ex.ent.origin);            ex.ent.angles[0] = (float) (Math.acos(dir[2]) / Math.PI * 180);            // PMM - fixed to correct for pitch of 0            if (dir[0] != 0.0f)                ex.ent.angles[1] = (float) (Math.atan2(dir[1], dir[0])                        / Math.PI * 180);            else if (dir[1] > 0)                ex.ent.angles[1] = 90;            else if (dir[1] < 0)                ex.ent.angles[1] = 270;            else                ex.ent.angles[1] = 0;            ex.type = ex_misc;            ex.ent.flags = Defines.RF_FULLBRIGHT | Defines.RF_TRANSLUCENT;            ex.start = Globals.cl.frame.servertime - 100;            ex.light = 150;            ex.lightcolor[0] = 1;            ex.lightcolor[1] = 1;            ex.ent.model = cl_mod_explode;            ex.frames = 4;            S.StartSound(pos, 0, 0, cl_sfx_lashit, 1, Defines.ATTN_NORM, 0);            break;        case Defines.TE_RAILTRAIL: // railgun effect            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadPos(Globals.net_message, pos2);            CL_fx.RailTrail(pos, pos2);            S.StartSound(pos2, 0, 0, cl_sfx_railg, 1, Defines.ATTN_NORM, 0);            break;        case Defines.TE_EXPLOSION2:        case Defines.TE_GRENADE_EXPLOSION:        case Defines.TE_GRENADE_EXPLOSION_WATER:            MSG.ReadPos(Globals.net_message, pos);            ex = AllocExplosion();            Math3D.VectorCopy(pos, ex.ent.origin);            ex.type = ex_poly;            ex.ent.flags = Defines.RF_FULLBRIGHT;            ex.start = Globals.cl.frame.servertime - 100;            ex.light = 350;            ex.lightcolor[0] = 1.0f;            ex.lightcolor[1] = 0.5f;            ex.lightcolor[2] = 0.5f;            ex.ent.model = cl_mod_explo4;            ex.frames = 19;            ex.baseframe = 30;            ex.ent.angles[1] = Lib.rand() % 360;            CL_fx.ExplosionParticles(pos);            if (type == Defines.TE_GRENADE_EXPLOSION_WATER)                S                        .StartSound(pos, 0, 0, cl_sfx_watrexp, 1,                                Defines.ATTN_NORM, 0);            else                S                        .StartSound(pos, 0, 0, cl_sfx_grenexp, 1,                                Defines.ATTN_NORM, 0);            break;        // RAFAEL        case Defines.TE_PLASMA_EXPLOSION:            MSG.ReadPos(Globals.net_message, pos);            ex = AllocExplosion();            Math3D.VectorCopy(pos, ex.ent.origin);            ex.type = ex_poly;            ex.ent.flags = Defines.RF_FULLBRIGHT;            ex.start = Globals.cl.frame.servertime - 100;            ex.light = 350;            ex.lightcolor[0] = 1.0f;            ex.lightcolor[1] = 0.5f;            ex.lightcolor[2] = 0.5f;            ex.ent.angles[1] = Lib.rand() % 360;            ex.ent.model = cl_mod_explo4;            if (Globals.rnd.nextFloat() < 0.5)                ex.baseframe = 15;            ex.frames = 15;            CL_fx.ExplosionParticles(pos);            S.StartSound(pos, 0, 0, cl_sfx_rockexp, 1, Defines.ATTN_NORM, 0);            break;        case Defines.TE_EXPLOSION1:        case Defines.TE_EXPLOSION1_BIG: // PMM        case Defines.TE_ROCKET_EXPLOSION:        case Defines.TE_ROCKET_EXPLOSION_WATER:        case Defines.TE_EXPLOSION1_NP: // PMM            MSG.ReadPos(Globals.net_message, pos);            ex = AllocExplosion();            Math3D.VectorCopy(pos, ex.ent.origin);            ex.type = ex_poly;            ex.ent.flags = Defines.RF_FULLBRIGHT;            ex.start = Globals.cl.frame.servertime - 100;            ex.light = 350;            ex.lightcolor[0] = 1.0f;            ex.lightcolor[1] = 0.5f;            ex.lightcolor[2] = 0.5f;            ex.ent.angles[1] = Lib.rand() % 360;            if (type != Defines.TE_EXPLOSION1_BIG) // PMM                ex.ent.model = cl_mod_explo4; // PMM            else                ex.ent.model = cl_mod_explo4_big;            if (Globals.rnd.nextFloat() < 0.5)                ex.baseframe = 15;            ex.frames = 15;            if ((type != Defines.TE_EXPLOSION1_BIG)                    && (type != Defines.TE_EXPLOSION1_NP)) // PMM                CL_fx.ExplosionParticles(pos); // PMM            if (type == Defines.TE_ROCKET_EXPLOSION_WATER)                S                        .StartSound(pos, 0, 0, cl_sfx_watrexp, 1,                                Defines.ATTN_NORM, 0);            else                S                        .StartSound(pos, 0, 0, cl_sfx_rockexp, 1,                                Defines.ATTN_NORM, 0);            break;        case Defines.TE_BFG_EXPLOSION:            MSG.ReadPos(Globals.net_message, pos);            ex = AllocExplosion();            Math3D.VectorCopy(pos, ex.ent.origin);            ex.type = ex_poly;            ex.ent.flags = Defines.RF_FULLBRIGHT;            ex.start = Globals.cl.frame.servertime - 100;            ex.light = 350;            ex.lightcolor[0] = 0.0f;            ex.lightcolor[1] = 1.0f;            ex.lightcolor[2] = 0.0f;            ex.ent.model = cl_mod_bfg_explo;            ex.ent.flags |= Defines.RF_TRANSLUCENT;            ex.ent.alpha = 0.30f;            ex.frames = 4;            break;        case Defines.TE_BFG_BIGEXPLOSION:            MSG.ReadPos(Globals.net_message, pos);            CL_fx.BFGExplosionParticles(pos);            break;        case Defines.TE_BFG_LASER:            ParseLaser(0xd0d1d2d3);            break;        case Defines.TE_BUBBLETRAIL:            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadPos(Globals.net_message, pos2);            CL_fx.BubbleTrail(pos, pos2);            break;        case Defines.TE_PARASITE_ATTACK:        case Defines.TE_MEDIC_CABLE_ATTACK:            ent = ParseBeam(cl_mod_parasite_segment);            break;        case Defines.TE_BOSSTPORT: // boss teleporting to station            MSG.ReadPos(Globals.net_message, pos);            CL_fx.BigTeleportParticles(pos);            S.StartSound(pos, 0, 0, S.RegisterSound("misc/bigtele.wav"), 1,                    Defines.ATTN_NONE, 0);            break;        case Defines.TE_GRAPPLE_CABLE:            ent = ParseBeam2(cl_mod_grapple_cable);            break;        // RAFAEL        case Defines.TE_WELDING_SPARKS:            cnt = MSG.ReadByte(Globals.net_message);            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            color = MSG.ReadByte(Globals.net_message);            CL_fx.ParticleEffect2(pos, dir, color, cnt);            ex = AllocExplosion();            Math3D.VectorCopy(pos, ex.ent.origin);            ex.type = ex_flash;            // note to self            // we need a better no draw flag            ex.ent.flags = Defines.RF_BEAM;            ex.start = Globals.cl.frame.servertime - 0.1f;            ex.light = 100 + (Lib.rand() % 75);            ex.lightcolor[0] = 1.0f;            ex.lightcolor[1] = 1.0f;            ex.lightcolor[2] = 0.3f;            ex.ent.model = cl_mod_flash;            ex.frames = 2;            break;        case Defines.TE_GREENBLOOD:            MSG.ReadPos(Globals.net_message, pos);            MSG.ReadDir(Globals.net_message, dir);            CL_fx.ParticleEffect2(pos, dir, 0xdf, 30);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -