removes deprecated T/P types

This commit is contained in:
Araq 2018-11-16 13:27:46 +01:00
commit 3f6168b337
64 changed files with 43 additions and 276 deletions

View file

@ -2,7 +2,7 @@ import macros, macro_dsl, estreams
from strutils import format
template newLenName() =
let lenName {.inject.} = ^("len"& $lenNames)
let lenName {.inject.} = ^("len" & $lenNames)
inc(lenNames)
template defPacketImports*() {.dirty.} =
@ -18,7 +18,7 @@ macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
var
constructorParams = newNimNode(nnkFormalParams).und(typeName)
constructor = newNimNode(nnkProcDef).und(
postfix(^("new"& $typeName.ident), "*"),
postfix(^("new" & $typeName.ident), "*"),
emptyNode(),
emptyNode(),
constructorParams,
@ -41,7 +41,7 @@ macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
emptyNode(),
emptyNode())
read = newNimNode(nnkProcDef).und(
newIdentNode("read"& $typeName.ident).postfix("*"),
newIdentNode("read" & $typeName.ident).postfix("*"),
emptyNode(),
emptyNode(),
newNimNode(nnkFormalParams).und(
@ -70,7 +70,7 @@ macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
let
item = ^"item" ## item name in our iterators
seqType = typeFields[i][1][1] ## type of seq
readName = newIdentNode("read"& $seqType.ident)
readName = newIdentNode("read" & $seqType.ident)
readBody.add(newNimNode(nnkLetSection).und(
newNimNode(nnkIdentDefs).und(
lenName,
@ -100,7 +100,7 @@ macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
#set the default value to @[] (new sequence)
typeFields[i][2] = "@".prefix(newNimNode(nnkBracket))
else:
error("Unknown type: "& treeRepr(typeFields[i]))
error("Unknown type: " & treeRepr(typeFields[i]))
of nnkIdent: ##normal type
case $typeFields[i][1].ident
of "string": # length encoded string
@ -109,12 +109,12 @@ macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
of "int8", "int16", "int32", "float32", "float64", "char", "bool":
packBody.add(newCall(
"writeBE", streamID, dotName))
readBody.add(resName := newCall("read"& $typeFields[i][1].ident, streamID))
readBody.add(resName := newCall("read" & $typeFields[i][1].ident, streamID))
else: ## hopefully the type you specified was another defpacket() type
packBody.add(newCall("pack", streamID, dotName))
readBody.add(resName := newCall("read"& $typeFields[i][1].ident, streamID))
readBody.add(resName := newCall("read" & $typeFields[i][1].ident, streamID))
else:
error("I dont know what to do with: "& treerepr(typeFields[i]))
error("I dont know what to do with: " & treerepr(typeFields[i]))
var
toStringFunc = newNimNode(nnkProcDef).und(
@ -137,7 +137,7 @@ macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
newNimNode(nnkCall).und(# [6][0][1]
^"format", ## format
emptyNode())))) ## "[TypeName $1 $2]"
formatStr = "["& $typeName.ident
formatStr = "[" & $typeName.ident
const emptyFields = {nnkEmpty, nnkNilLit}
var objFields = newNimNode(nnkRecList)
@ -206,7 +206,7 @@ macro forwardPacket*(typeName: untyped, underlyingType: untyped): untyped =
streamID = ^"s"
result = newNimNode(nnkStmtList).und(
newProc(
(^("read"& $typeName.ident)).postfix("*"),
(^("read" & $typeName.ident)).postfix("*"),
[ iddefs("s", "PBuffer", newNimNode(nnkNilLit)) ],
typeName),
newProc(

View file

@ -217,7 +217,7 @@ proc lobbyUpdate*(dt: float) =
gui.update(dt)
i = (i + 1) mod 60
if i == 0:
fpsText.setString("FPS: "& ff(1.0/dt))
fpsText.setString("FPS: " & ff(1.0/dt))
proc lobbyDraw*(window: PRenderWindow) =
window.clear(Black)

View file

@ -230,7 +230,7 @@ proc explode*(b: PLiveBullet) =
proc bulletUpdate(body: PBody, gravity: TVector, damping, dt: CpFloat){.cdecl.} =
body.UpdateVelocity(gravity, damping, dt)
template getPhysical() {.immediate.} =
template getPhysical() {.dirty.} =
result.body = space.addBody(newBody(
record.physics.mass,
record.physics.moment))
@ -281,7 +281,7 @@ proc draw*(window: PRenderWindow; b: PLiveBullet) {.inline.} =
proc free*(veh: PVehicle) =
("Destroying vehicle "& veh.record.name).echo
("Destroying vehicle " & veh.record.name).echo
destroy(veh.sprite)
if veh.shape.isNil: "Free'd vehicle's shape was NIL!".echo
else: space.removeShape(veh.shape)
@ -290,12 +290,12 @@ proc free*(veh: PVehicle) =
veh.body.free()
veh.shape.free()
veh.sprite = nil
veh.body = nil
veh.body = nil
veh.shape = nil
proc newVehicle*(record: PVehicleRecord): PVehicle =
echo("Creating "& record.name)
echo("Creating " & record.name)
new(result, free)
result.record = record
result.sprite = result.record.anim.spriteSheet.sprite.copy()

View file

@ -8,7 +8,7 @@ type
addy: enet.TAddress
host*: PHost
peer*: PPeer
handlers*: TTable[char, TScPktHandler]
handlers*: Table[char, TScPktHandler]
TScPktHandler* = proc(serv: PServer; buffer: PBuffer)
TFileTransfer = object
fileName: string

View file

@ -222,7 +222,7 @@ template cacheImpl(procName, cacheName, resultType, body: untyped) {.dirty.} =
template checkFile(path: untyped) {.dirty.} =
if not existsFile(path):
errors.add("File missing: "& path)
errors.add("File missing: " & path)
cacheImpl newSprite, SpriteSheets, PSpriteSheet:
result.file = filename
@ -231,7 +231,7 @@ cacheImpl newSprite, SpriteSheets, PSpriteSheet:
result.frameh = strutils.parseInt(matches[1])
checkFile("data/gfx"/result.file)
else:
errors.add "Bad file: "&filename&" must be in format name_WxH.png"
errors.add "Bad file: " & filename & " must be in format name_WxH.png"
return
cacheImpl newSound, SoundCache, PSoundRecord:
@ -314,10 +314,10 @@ proc validateSettings*(settings: JsonNode, errors: var seq[string]): bool =
else:
var id = 0
for i in items.items:
if i.kind != JArray: errors.add("Item #$1 is not an array"% $id)
if i.kind != JArray: errors.add("Item #$1 is not an array" % $id)
elif i.len != 3: errors.add("($1) Item record should have 3 fields"%($id))
elif i[0].kind != JString or i[1].kind != JString or i[2].kind != JObject:
errors.add("($1) Item should be in form [name, type, {item: data}]"% $id)
errors.add("($1) Item should be in form [name, type, {item: data}]" % $id)
result = false
inc id
@ -332,10 +332,10 @@ proc loadSettings*(rawJson: string, errors: var seq[string]): bool =
try:
settings = parseJson(rawJson)
except JsonParsingError:
errors.add("JSON parsing error: "& getCurrentExceptionMsg())
errors.add("JSON parsing error: " & getCurrentExceptionMsg())
return
except:
errors.add("Unknown exception: "& getCurrentExceptionMsg())
errors.add("Unknown exception: " & getCurrentExceptionMsg())
return
if not validateSettings(settings, errors):
return
@ -378,7 +378,7 @@ proc loadSettings*(rawJson: string, errors: var seq[string]): bool =
inc vID
if itm.kind == Projectile:
if itm.bullet.isNil:
errors.add("Projectile #$1 has no bullet!"% $vID)
errors.add("Projectile #$1 has no bullet!" % $vID)
elif itm.bullet.id == -1:
## this item has an anonymous bullet, fix the ID and name
itm.bullet.id = bID

View file

@ -260,7 +260,7 @@ proc update*(m: PMessageArea) =
m.texts.add messageProto.copy()
elif m.texts.len > m.sizeVisible:
echo "cutting ", m.texts.len - m.sizeVisible, " fields"
for i in m.sizeVisible.. < m.texts.len:
for i in m.sizeVisible ..< m.texts.len:
m.texts.pop().destroy()
let nmsgs = m.messages.len()
if m.sizeVisible == 0 or nmsgs == 0:

View file

@ -23,7 +23,7 @@ proc strafe_left*(obj: PVehicle, dt: float) =
VectorZero)
proc strafe_right*(obj: PVehicle, dt: float) =
obj.body.applyImpulse(
vectorForAngle(obj.body.getAngle()).rperp()* obj.record.handling.strafe * dt,
vectorForAngle(obj.body.getAngle()).rperp() * obj.record.handling.strafe * dt,
VectorZero)
proc turn_right*(obj: PVehicle, dt: float) =
#obj.angle = (obj.angle + (obj.record.handling.rotation.float / 10.0 * dt)) mod TAU