mirror of
https://github.com/ProjectSWGCore/pswgcommon.git
synced 2026-01-17 00:04:25 -05:00
Added image design related packets
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
package com.projectswg.common.network.packets.swg.zone.object_controller
|
||||
|
||||
import com.projectswg.common.data.customization.CustomizationString
|
||||
import com.projectswg.common.network.NetBuffer
|
||||
|
||||
class ImageDesignChangeMessage : ObjectController {
|
||||
|
||||
constructor(receiverId: Long) : super(receiverId, CRC)
|
||||
|
||||
constructor(data: NetBuffer) : super(CRC) {
|
||||
decode(data)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val CRC = 0x0238
|
||||
}
|
||||
|
||||
var designerId = 0L
|
||||
var clientId = 0L
|
||||
var salonId = 0L
|
||||
var hairChanged = false
|
||||
var hair = ""
|
||||
var hairCustomization = CustomizationString()
|
||||
var designType = 0
|
||||
var startingTime = 0
|
||||
var moneyDemanded = 0
|
||||
var moneyOffered = 0
|
||||
var designerCommitted = false
|
||||
var clientAccepted = false
|
||||
var statMigration = false
|
||||
var bodySkillMod = 0
|
||||
var faceSkillMod = 0
|
||||
var markingsSkillMod = 0
|
||||
var hairSkillMod = 0
|
||||
var morphParameters: MutableList<MorphParameter> = ArrayList()
|
||||
var indexParameters: MutableList<IndexParameter> = ArrayList()
|
||||
var holoemote = ""
|
||||
|
||||
override fun decode(data: NetBuffer) {
|
||||
decodeHeader(data)
|
||||
designerId = data.long
|
||||
clientId = data.long
|
||||
salonId = data.long
|
||||
hairChanged = data.boolean
|
||||
hair = data.ascii
|
||||
hairCustomization.decode(data)
|
||||
designType = data.int
|
||||
startingTime = data.int
|
||||
moneyDemanded = data.int
|
||||
moneyOffered = data.int
|
||||
designerCommitted = data.boolean
|
||||
clientAccepted = data.int != 0
|
||||
statMigration = data.boolean
|
||||
bodySkillMod = data.int
|
||||
faceSkillMod = data.int
|
||||
markingsSkillMod = data.int
|
||||
hairSkillMod = data.int
|
||||
morphParameters = data.getList(MorphParameter::class.java)
|
||||
indexParameters = data.getList(IndexParameter::class.java)
|
||||
holoemote = data.ascii
|
||||
}
|
||||
|
||||
override fun encode(): NetBuffer {
|
||||
val data = NetBuffer.allocate(HEADER_LENGTH + 26)
|
||||
encodeHeader(data)
|
||||
data.addLong(designerId)
|
||||
data.addLong(clientId)
|
||||
data.addLong(salonId)
|
||||
data.addBoolean(hairChanged)
|
||||
data.addAscii(hair)
|
||||
data.addEncodable(hairCustomization)
|
||||
data.addInt(designType)
|
||||
data.addInt(startingTime)
|
||||
data.addInt(moneyDemanded)
|
||||
data.addInt(moneyOffered)
|
||||
data.addBoolean(designerCommitted)
|
||||
data.addInt(if (clientAccepted) 1 else 0)
|
||||
data.addBoolean(statMigration)
|
||||
data.addInt(bodySkillMod)
|
||||
data.addInt(faceSkillMod)
|
||||
data.addInt(markingsSkillMod)
|
||||
data.addInt(hairSkillMod)
|
||||
data.addList(morphParameters)
|
||||
data.addList(indexParameters)
|
||||
data.addAscii(holoemote)
|
||||
|
||||
return data
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.projectswg.common.network.packets.swg.zone.object_controller
|
||||
|
||||
import com.projectswg.common.data.customization.CustomizationString
|
||||
import com.projectswg.common.network.NetBuffer
|
||||
|
||||
class ImageDesignEndMessage : ObjectController {
|
||||
|
||||
constructor(receiverId: Long) : super(receiverId, CRC)
|
||||
|
||||
constructor(data: NetBuffer) : super(CRC) {
|
||||
decode(data)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val CRC = 0x0239
|
||||
}
|
||||
|
||||
var designerId = 0L
|
||||
var clientId = 0L
|
||||
var salonId = 0L
|
||||
var hairChanged = false
|
||||
var hair = ""
|
||||
var hairCustomization = CustomizationString()
|
||||
var designType = 0
|
||||
var startingTime = 0
|
||||
var moneyDemanded = 0
|
||||
var moneyOffered = 0
|
||||
var designerCommitted = false
|
||||
var clientAccepted = false
|
||||
var statMigration = false
|
||||
var bodySkillMod = 0
|
||||
var faceSkillMod = 0
|
||||
var markingsSkillMod = 0
|
||||
var hairSkillMod = 0
|
||||
var morphParameters: MutableList<MorphParameter> = ArrayList()
|
||||
var indexParameters: MutableList<IndexParameter> = ArrayList()
|
||||
var holoemote = ""
|
||||
|
||||
override fun decode(data: NetBuffer) {
|
||||
decodeHeader(data)
|
||||
designerId = data.long
|
||||
clientId = data.long
|
||||
salonId = data.long
|
||||
hairChanged = data.boolean
|
||||
hair = data.ascii
|
||||
hairCustomization.decode(data)
|
||||
designType = data.int
|
||||
startingTime = data.int
|
||||
moneyDemanded = data.int
|
||||
moneyOffered = data.int
|
||||
designerCommitted = data.boolean
|
||||
clientAccepted = data.int != 0
|
||||
statMigration = data.boolean
|
||||
bodySkillMod = data.int
|
||||
faceSkillMod = data.int
|
||||
markingsSkillMod = data.int
|
||||
hairSkillMod = data.int
|
||||
morphParameters = data.getList(MorphParameter::class.java)
|
||||
indexParameters = data.getList(IndexParameter::class.java)
|
||||
holoemote = data.ascii
|
||||
}
|
||||
|
||||
override fun encode(): NetBuffer {
|
||||
val data = NetBuffer.allocate(HEADER_LENGTH + 26)
|
||||
encodeHeader(data)
|
||||
data.addLong(designerId)
|
||||
data.addLong(clientId)
|
||||
data.addLong(salonId)
|
||||
data.addBoolean(hairChanged)
|
||||
data.addAscii(hair)
|
||||
data.addEncodable(hairCustomization)
|
||||
data.addInt(designType)
|
||||
data.addInt(startingTime)
|
||||
data.addInt(moneyDemanded)
|
||||
data.addInt(moneyOffered)
|
||||
data.addBoolean(designerCommitted)
|
||||
data.addInt(if (clientAccepted) 1 else 0)
|
||||
data.addBoolean(statMigration)
|
||||
data.addInt(bodySkillMod)
|
||||
data.addInt(faceSkillMod)
|
||||
data.addInt(markingsSkillMod)
|
||||
data.addInt(hairSkillMod)
|
||||
data.addList(morphParameters)
|
||||
data.addList(indexParameters)
|
||||
data.addAscii(holoemote)
|
||||
|
||||
return data
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.projectswg.common.network.packets.swg.zone.object_controller
|
||||
|
||||
import com.projectswg.common.network.NetBuffer
|
||||
|
||||
class ImageDesignStartMessage : ObjectController {
|
||||
|
||||
constructor(receiverId: Long) : super(receiverId, CRC)
|
||||
|
||||
constructor(data: NetBuffer) : super(CRC) {
|
||||
decode(data)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val CRC = 0x023A
|
||||
}
|
||||
|
||||
var designerId = 0L
|
||||
var clientId = 0L
|
||||
var salonId = 0L
|
||||
var holoEmote = ""
|
||||
|
||||
override fun decode(data: NetBuffer) {
|
||||
decodeHeader(data)
|
||||
designerId = data.long
|
||||
clientId = data.long
|
||||
salonId = data.long
|
||||
holoEmote = data.ascii
|
||||
}
|
||||
|
||||
override fun encode(): NetBuffer {
|
||||
val data = NetBuffer.allocate(HEADER_LENGTH + 26 + holoEmote.length)
|
||||
encodeHeader(data)
|
||||
data.addLong(designerId)
|
||||
data.addLong(clientId)
|
||||
data.addLong(salonId)
|
||||
data.addAscii(holoEmote)
|
||||
|
||||
return data
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.projectswg.common.network.packets.swg.zone.object_controller
|
||||
|
||||
import com.projectswg.common.encoding.Encodable
|
||||
import com.projectswg.common.network.NetBuffer
|
||||
|
||||
class IndexParameter : Encodable {
|
||||
|
||||
var name = ""
|
||||
var value = 0
|
||||
|
||||
override fun decode(data: NetBuffer) {
|
||||
name = data.ascii
|
||||
value = data.int
|
||||
}
|
||||
|
||||
override fun encode(): ByteArray {
|
||||
val data = NetBuffer.allocate(length)
|
||||
|
||||
data.addAscii(name)
|
||||
data.addInt(value)
|
||||
|
||||
return data.array()
|
||||
}
|
||||
|
||||
override val length: Int
|
||||
get() = 6 + name.length
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.projectswg.common.network.packets.swg.zone.object_controller
|
||||
|
||||
import com.projectswg.common.encoding.Encodable
|
||||
import com.projectswg.common.network.NetBuffer
|
||||
|
||||
class MorphParameter : Encodable {
|
||||
|
||||
var name = ""
|
||||
var value = 0f
|
||||
|
||||
override fun decode(data: NetBuffer) {
|
||||
name = data.ascii
|
||||
value = data.float
|
||||
}
|
||||
|
||||
override fun encode(): ByteArray {
|
||||
val data = NetBuffer.allocate(length)
|
||||
|
||||
data.addAscii(name)
|
||||
data.addFloat(value)
|
||||
|
||||
return data.array()
|
||||
}
|
||||
|
||||
override val length: Int
|
||||
get() = 6 + name.length
|
||||
}
|
||||
@@ -40,6 +40,7 @@ import com.projectswg.common.network.NetBuffer;
|
||||
import com.projectswg.common.network.packets.SWGPacket;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatAction;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatSpam;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public abstract class ObjectController extends SWGPacket {
|
||||
|
||||
@@ -72,7 +73,6 @@ public abstract class ObjectController extends SWGPacket {
|
||||
Log.e("Attempting to process invalid controller");
|
||||
objectId = data.getLong();
|
||||
data.getInt();
|
||||
return;
|
||||
}
|
||||
|
||||
protected final void encodeHeader(NetBuffer data) {
|
||||
@@ -85,7 +85,7 @@ public abstract class ObjectController extends SWGPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void decode(NetBuffer data);
|
||||
public abstract void decode(@NotNull NetBuffer data);
|
||||
@Override
|
||||
public abstract NetBuffer encode();
|
||||
|
||||
@@ -132,6 +132,9 @@ public abstract class ObjectController extends SWGPacket {
|
||||
case 0x01DB: return new BiographyUpdate(data);
|
||||
case 0x0229: return new BuffAddUpdate(data);
|
||||
case 0x022A: return new BuffRemoveUpdate(data);
|
||||
case ImageDesignStartMessage.CRC: return new ImageDesignStartMessage(data);
|
||||
case ImageDesignChangeMessage.CRC: return new ImageDesignChangeMessage(data);
|
||||
case ImageDesignEndMessage.CRC: return new ImageDesignEndMessage(data);
|
||||
case 0x043D: return new GroupOpenLotteryWindow(data);
|
||||
case 0x043E: return new GroupCloseLotteryWindow(data);
|
||||
case 0x0440: return new GroupRequestLotteryItems(data);
|
||||
|
||||
Reference in New Issue
Block a user