0

remove class Vargs

This commit is contained in:
2019-06-05 23:37:11 +03:00
parent a0b04e49f1
commit 98401b233e
14 changed files with 59 additions and 364 deletions

View File

@@ -23,7 +23,6 @@ import lwjake2.Globals;
import lwjake2.qcommon.Com;
import lwjake2.qcommon.MSG;
import lwjake2.util.Lib;
import lwjake2.util.Vargs;
/**
* CL_inv
@@ -120,8 +119,8 @@ public class CL_inv {
break;
}
string = Com.sprintf("%6s %3i %s", new Vargs(3).add(bind).add(Globals.cl.inventory[item]).add(
Globals.cl.configstrings[Defines.CS_ITEMS + item]));
string = Com.sprintf("%6s %3i %s",
bind, Globals.cl.inventory[item], Globals.cl.configstrings[Defines.CS_ITEMS + item]);
if (item != selected)
string = getHighBitString(string);
else // draw a blinky cursor by the selected item

View File

@@ -24,7 +24,6 @@ import lwjake2.Globals;
import lwjake2.game.Cmd;
import lwjake2.qcommon.*;
import lwjake2.util.Lib;
import lwjake2.util.Vargs;
import java.io.IOException;
import java.io.RandomAccessFile;
@@ -511,7 +510,7 @@ public final class Console {
SCR.AddDirtyPoint(0, 0);
SCR.AddDirtyPoint(viddef.width - 1, lines - 1);
version = Com.sprintf("v%4.2f", new Vargs(1).add(VERSION));
version = Com.sprintf("v%4.2f", VERSION);
for (x = 0; x < 5; x++)
re.DrawChar(viddef.width - 44 + x * 8, lines - 12, 128 + version
.charAt(x));

View File

@@ -28,7 +28,6 @@ import lwjake2.qcommon.*;
import lwjake2.sound.S;
import lwjake2.sys.Timer;
import lwjake2.util.Lib;
import lwjake2.util.Vargs;
import java.awt.*;
import java.nio.ByteBuffer;
@@ -985,8 +984,7 @@ public final class SCR {
ping = 999;
// sprintf(block, "%3d %3d %-12.12s", score, ping, ci->name);
String block = Com.sprintf("%3d %3d %-12.12s", new Vargs(3)
.add(score).add(ping).add(ci.name));
String block = Com.sprintf("%3d %3d %-12.12s", score, ping, ci.name);
if (value == cl.playernum)
Console.DrawAltString(x, y, block);

View File

@@ -29,7 +29,6 @@ import lwjake2.qcommon.Cvar;
import lwjake2.render.Renderer;
import lwjake2.sound.S;
import lwjake2.sys.IN;
import lwjake2.util.Vargs;
import java.awt.*;

View File

@@ -22,7 +22,6 @@ import lwjake2.Defines;
import lwjake2.qcommon.Com;
import lwjake2.util.Lib;
import lwjake2.util.Math3D;
import lwjake2.util.Vargs;
public class PlayerHud {
@@ -516,13 +515,14 @@ public class PlayerHud {
.append("\" "); // help 2
sb.append("xv 50 yv 164 string2 \" kills goals secrets\" ");
sb.append("xv 50 yv 172 string2 \"");
sb.append(Com.sprintf("%3i/%3i %i/%i %i/%i\" ", new Vargs(6)
.add(GameBase.level.killed_monsters).add(
GameBase.level.total_monsters).add(
GameBase.level.found_goals).add(
GameBase.level.total_goals).add(
GameBase.level.found_secrets).add(
GameBase.level.total_secrets)));
sb.append(Com.sprintf("%3i/%3i %i/%i %i/%i\" ",
GameBase.level.killed_monsters,
GameBase.level.total_monsters,
GameBase.level.found_goals,
GameBase.level.total_goals,
GameBase.level.found_secrets,
GameBase.level.total_secrets
));
GameBase.gi.WriteByte(Defines.svc_layout);
GameBase.gi.WriteString(sb.toString());

View File

@@ -27,7 +27,6 @@ import lwjake2.game.Cmd;
import lwjake2.server.SV_MAIN;
import lwjake2.sys.Sys;
import lwjake2.util.PrintfFormat;
import lwjake2.util.Vargs;
import java.io.IOException;
@@ -241,12 +240,7 @@ public final class Com {
public static Runnable Error_f= () -> Error(ErrorCode.ERR_FATAL, Cmd.Argv(1));
public static void Error(int code, String fmt) throws IllegalStateException
{
Error(code, fmt, null);
}
public static void Error(int code, String fmt, Vargs vargs) throws IllegalStateException
public static void Error(int code, String fmt, Object... vargs) throws IllegalStateException
{
// va_list argptr;
// static char msg[MAXPRINTMSG];
@@ -257,7 +251,7 @@ public final class Com {
}
recursive= true;
msg= sprintf(fmt, vargs);
msg = sprintf(fmt, vargs);
if (code == ErrorCode.ERR_DISCONNECT)
{
@@ -304,16 +298,13 @@ public final class Com {
}
}
public static String sprintf(String fmt, Vargs vargs)
public static String sprintf(String fmt, Object... vargs)
{
String msg= "";
if (vargs == null || vargs.size() == 0)
{
msg= fmt;
}
else
{
msg= new PrintfFormat(fmt).sprintf(vargs.toArray());
String msg = "";
if (vargs == null || vargs.length == 0) {
msg = fmt;
} else {
msg = new PrintfFormat(fmt).sprintf(vargs);
}
return msg;
}

View File

@@ -30,7 +30,6 @@ import lwjake2.server.SV_MAIN;
import lwjake2.sys.NET;
import lwjake2.sys.Sys;
import lwjake2.sys.Timer;
import lwjake2.util.Vargs;
import java.io.FileWriter;
import java.io.IOException;
@@ -103,11 +102,10 @@ public final class Qcommon {
Globals.showtrace= Cvar.Get("showtrace", "0", 0);
Globals.dedicated= Cvar.Get("dedicated", "0", CVAR_NOSET);
String s = Com.sprintf("%4.2f %s %s %s",
new Vargs(4)
.add(Globals.VERSION)
.add(CPUSTRING)
.add(Globals.__DATE__)
.add(BUILDSTRING));
Globals.VERSION,
CPUSTRING,
Globals.__DATE__,
BUILDSTRING);
Cvar.Get("version", s, CVAR_SERVERINFO | CVAR_NOSET);

View File

@@ -23,13 +23,11 @@ import lombok.extern.slf4j.Slf4j;
import lwjake2.Defines;
import lwjake2.ErrorCode;
import dmx.lwjake2.UnpackLoader;
import lwjake2.client.VID;
import lwjake2.client.particle_t;
import lwjake2.game.cvar_t;
import lwjake2.qcommon.*;
import dmx.lwjake2.render.Q2Image;
import lwjake2.util.Lib;
import lwjake2.util.Vargs;
import java.awt.Dimension;
import java.awt.geom.AffineTransform;

View File

@@ -37,7 +37,6 @@ import dmx.lwjake2.render.Q2Image;
import lwjake2.render.mleaf_t;
import lwjake2.render.model_t;
import lwjake2.util.Math3D;
import lwjake2.util.Vargs;
import java.awt.Dimension;
import java.nio.FloatBuffer;

View File

@@ -22,7 +22,6 @@ import dmx.lwjake2.render.ModelType;
import lombok.extern.slf4j.Slf4j;
import lwjake2.Defines;
import lwjake2.ErrorCode;
import lwjake2.client.VID;
import lwjake2.game.cplane_t;
import lwjake2.game.cvar_t;
import lwjake2.qcommon.Com;
@@ -40,7 +39,6 @@ import lwjake2.render.msurface_t;
import lwjake2.render.mtexinfo_t;
import lwjake2.render.mvertex_t;
import lwjake2.util.Math3D;
import lwjake2.util.Vargs;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@@ -1036,7 +1034,7 @@ public abstract class Model extends Surf {
if (pheader.version != qfiles.ALIAS_VERSION)
Com.Error(ErrorCode.ERR_DROP, "%s has wrong version number (%i should be %i)",
new Vargs(3).add(mod.name).add(pheader.version).add(qfiles.ALIAS_VERSION));
mod.name, pheader.version, qfiles.ALIAS_VERSION);
if (pheader.skinheight > MAX_LBM_HEIGHT)
Com.Error(ErrorCode.ERR_DROP, "model "+ mod.name +" has a skin taller than " + MAX_LBM_HEIGHT);
@@ -1154,11 +1152,11 @@ public abstract class Model extends Surf {
if (sprout.version != qfiles.SPRITE_VERSION)
Com.Error(ErrorCode.ERR_DROP, "%s has wrong version number (%i should be %i)",
new Vargs(3).add(mod.name).add(sprout.version).add(qfiles.SPRITE_VERSION));
mod.name, sprout.version, qfiles.SPRITE_VERSION);
if (sprout.numframes > qfiles.MAX_MD2SKINS)
Com.Error(ErrorCode.ERR_DROP, "%s has too many frames (%i > %i)",
new Vargs(3).add(mod.name).add(sprout.numframes).add(qfiles.MAX_MD2SKINS));
mod.name, sprout.numframes, qfiles.MAX_MD2SKINS);
for (int i=0 ; i<sprout.numframes ; i++)
{

View File

@@ -41,7 +41,6 @@ import lwjake2.sys.NET;
import lwjake2.sys.Sys;
import lwjake2.util.Lib;
import lwjake2.util.QuakeFile;
import lwjake2.util.Vargs;
import java.io.File;
import java.io.FileNotFoundException;
@@ -395,12 +394,11 @@ public class SV_CCMDS {
if (!autosave) {
Calendar c = Calendar.getInstance();
comment =
Com.sprintf(
"%2i:%2i %2i/%2i ",
new Vargs().add(c.get(Calendar.HOUR_OF_DAY)).add(c.get(Calendar.MINUTE)).add(
c.get(Calendar.MONTH) + 1).add(
c.get(Calendar.DAY_OF_MONTH)));
comment = Com.sprintf("%2i:%2i %2i/%2i ",
c.get(Calendar.HOUR_OF_DAY),
c.get(Calendar.MINUTE),
c.get(Calendar.MONTH) + 1,
c.get(Calendar.DAY_OF_MONTH));
comment += SV_INIT.sv.configstrings[Defines.CS_NAME];
}
else {

View File

@@ -47,7 +47,7 @@ public class Lib {
/** Converts a vector to a beatiful string. */
public static String vtofsbeaty(float[] v) {
return Com.sprintf("%8.2f %8.2f %8.2f", new Vargs().add(v[0]).add(v[1]).add(v[2]));
return Com.sprintf("%8.2f %8.2f %8.2f", v[0], v[1], v[2]);
}
/** Like in libc. */

View File

@@ -541,17 +541,17 @@ public class PrintfFormat {
* Integer, Long, Float, Double, and Character
* arguments are treated as wrappers for primitive
* types.
* @param o The array of objects to format.
* @param objs The array of objects to format.
* @return The formatted String.
*/
public String sprintf(Object[] o) {
Enumeration<Object> e = vFmt.elements();
public String sprintf(Object... objs) {
Enumeration<Object> elements = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
int i = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
while (elements.hasMoreElements()) {
cs = (ConversionSpecification) elements.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
@@ -562,212 +562,46 @@ public class PrintfFormat {
i = cs.getArgumentPosition() - 1;
if (cs.isPositionalFieldWidth()) {
int ifw = cs.getArgumentPositionForFieldWidth() - 1;
cs.setFieldWidthWithArg(((Integer) o[ifw]).intValue());
cs.setFieldWidthWithArg((Integer) objs[ifw]);
}
if (cs.isPositionalPrecision()) {
int ipr = cs.getArgumentPositionForPrecision() - 1;
cs.setPrecisionWithArg(((Integer) o[ipr]).intValue());
cs.setPrecisionWithArg((Integer) objs[ipr]);
}
} else {
if (cs.isVariableFieldWidth()) {
cs.setFieldWidthWithArg(((Integer) o[i]).intValue());
cs.setFieldWidthWithArg((Integer) objs[i]);
i++;
}
if (cs.isVariablePrecision()) {
cs.setPrecisionWithArg(((Integer) o[i]).intValue());
cs.setPrecisionWithArg((Integer) objs[i]);
i++;
}
}
if (o[i] instanceof Byte)
sb.append(cs.internalsprintf(((Byte) o[i]).byteValue()));
else if (o[i] instanceof Short)
sb.append(cs.internalsprintf(((Short) o[i]).shortValue()));
else if (o[i] instanceof Integer)
sb.append(cs.internalsprintf(((Integer) o[i]).intValue()));
else if (o[i] instanceof Long)
sb.append(cs.internalsprintf(((Long) o[i]).longValue()));
else if (o[i] instanceof Float)
sb.append(cs.internalsprintf(((Float) o[i]).floatValue()));
else if (o[i] instanceof Double)
sb.append(cs.internalsprintf(((Double) o[i]).doubleValue()));
else if (o[i] instanceof Character)
sb.append(cs.internalsprintf(((Character) o[i]).charValue()));
else if (o[i] instanceof String)
sb.append(cs.internalsprintf((String) o[i]));
if (objs[i] instanceof Byte)
sb.append(cs.internalsprintf(((Byte) objs[i]).byteValue()));
else if (objs[i] instanceof Short)
sb.append(cs.internalsprintf(((Short) objs[i]).shortValue()));
else if (objs[i] instanceof Integer)
sb.append(cs.internalsprintf(((Integer) objs[i]).intValue()));
else if (objs[i] instanceof Long)
sb.append(cs.internalsprintf(((Long) objs[i]).longValue()));
else if (objs[i] instanceof Float)
sb.append(cs.internalsprintf(((Float) objs[i]).floatValue()));
else if (objs[i] instanceof Double)
sb.append(cs.internalsprintf(((Double) objs[i]).doubleValue()));
else if (objs[i] instanceof Character)
sb.append(cs.internalsprintf(((Character) objs[i]).charValue()));
else if (objs[i] instanceof String)
sb.append(cs.internalsprintf((String) objs[i]));
else
sb.append(cs.internalsprintf(o[i]));
sb.append(cs.internalsprintf(objs[i]));
if (!cs.isPositionalSpecification())
i++;
}
}
return sb.toString();
}
/**
* Format nothing. Just use the control string.
* @return the formatted String.
*/
public String sprintf() {
Enumeration<Object> e = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
else if (c == '%')
sb.append("%");
}
return sb.toString();
}
/**
* Format an int.
* @param x The int to format.
* @return The formatted String.
* @exception IllegalArgumentException if the
* conversion character is f, e, E, g, G, s,
* or S.
*/
public String sprintf(int x) throws IllegalArgumentException {
Enumeration<Object> e = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
else if (c == '%')
sb.append("%");
else
sb.append(cs.internalsprintf(x));
}
return sb.toString();
}
/**
* Format an long.
* @param x The long to format.
* @return The formatted String.
* @exception IllegalArgumentException if the
* conversion character is f, e, E, g, G, s,
* or S.
*/
public String sprintf(long x) throws IllegalArgumentException {
Enumeration<Object> e = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
else if (c == '%')
sb.append("%");
else
sb.append(cs.internalsprintf(x));
}
return sb.toString();
}
/**
* Format a double.
* @param x The double to format.
* @return The formatted String.
* @exception IllegalArgumentException if the
* conversion character is c, C, s, S,
* d, d, x, X, or o.
*/
public String sprintf(double x) throws IllegalArgumentException {
Enumeration<Object> e = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
else if (c == '%')
sb.append("%");
else
sb.append(cs.internalsprintf(x));
}
return sb.toString();
}
/**
* Format a String.
* @param x The String to format.
* @return The formatted String.
* @exception IllegalArgumentException if the
* conversion character is neither s nor S.
*/
public String sprintf(String x) throws IllegalArgumentException {
Enumeration<Object> e = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
else if (c == '%')
sb.append("%");
else
sb.append(cs.internalsprintf(x));
}
return sb.toString();
}
/**
* Format an Object. Convert wrapper types to
* their primitive equivalents and call the
* appropriate internal formatting method. Convert
* Strings using an internal formatting method for
* Strings. Otherwise use the default formatter
* (use toString).
* @param x the Object to format.
* @return the formatted String.
* @exception IllegalArgumentException if the
* conversion character is inappropriate for
* formatting an unwrapped value.
*/
public String sprintf(Object x) throws IllegalArgumentException {
Enumeration<Object> e = vFmt.elements();
ConversionSpecification cs = null;
char c = 0;
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
cs = (ConversionSpecification) e.nextElement();
c = cs.getConversionCharacter();
if (c == '\0')
sb.append(cs.getLiteral());
else if (c == '%')
sb.append("%");
else {
if (x instanceof Byte)
sb.append(cs.internalsprintf(((Byte) x).byteValue()));
else if (x instanceof Short)
sb.append(cs.internalsprintf(((Short) x).shortValue()));
else if (x instanceof Integer)
sb.append(cs.internalsprintf(((Integer) x).intValue()));
else if (x instanceof Long)
sb.append(cs.internalsprintf(((Long) x).longValue()));
else if (x instanceof Float)
sb.append(cs.internalsprintf(((Float) x).floatValue()));
else if (x instanceof Double)
sb.append(cs.internalsprintf(((Double) x).doubleValue()));
else if (x instanceof Character)
sb.append(cs.internalsprintf(((Character) x).charValue()));
else if (x instanceof String)
sb.append(cs.internalsprintf((String) x));
else
sb.append(cs.internalsprintf(x));
}
}
return sb.toString();
}
/**
*<p>
* ConversionSpecification allows the formatting of

View File

@@ -1,116 +0,0 @@
/*
* Copyright (C) 1997-2001 Id Software, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package lwjake2.util;
import java.util.Vector;
/**
* Vargs is a helper class to encapsulate printf arguments.
*
* @author cwei
*/
public class Vargs {
// initial capacity
static final int SIZE = 5;
Vector<Object> v = null;
public Vargs() {
this(SIZE);
}
public Vargs(int initialSize) {
if (v != null)
v.clear(); // clear previous list for GC
v = new Vector<>(initialSize);
}
public Vargs add(boolean value) {
v.add(value);
return this;
}
public Vargs add(byte value) {
v.add(value);
return this;
}
public Vargs add(char value) {
v.add(value);
return this;
}
public Vargs add(short value) {
v.add(value);
return this;
}
public Vargs add(int value) {
v.add(value);
return this;
}
public Vargs add(long value) {
v.add(value);
return this;
}
public Vargs add(float value) {
v.add(value);
return this;
}
public Vargs add(double value) {
v.add(value);
return this;
}
public Vargs add(String value) {
v.add(value);
return this;
}
public Vargs add(Object value) {
v.add(value);
return this;
}
public Vargs clear() {
v.clear();
return this;
}
/* This apparently isn't even used? - flibit
public Vector toVector() {
// Vector tmp = v;
// v = null;
// return tmp;
return (Vector) v.clone();
}
*/
public Object[] toArray() {
return v.toArray();
}
public int size() {
return v.size();
}
}