Witam, ostatnio myślałem nad dodaniem metody w squirrelu do klasy Packet, która automatycznie określałaby z jakiej metody skorzystać do zapisania Int'a na jak najmniejszej ilości bitów. Niby wszystko fajnie, pięknie, lecz przy próbie wywołania metody następuje crash, poniżej załączam screen z błędem:
![[Image: vcnlq7N.png]](http://i.imgur.com/vcnlq7N.png)
Tu fragment kodu testowego, po którym crashuje:
Metoda Packet.writeInt się wywołuje, lecz po wywołaniu metody Packet.writeUint8 następuje crash. Ktoś ma jakiś pomysł dlaczego?
Przy okazji, czy dodawania takiej metody to w ogóle dobry pomysł?
![[Image: vcnlq7N.png]](http://i.imgur.com/vcnlq7N.png)
Tu fragment kodu testowego, po którym crashuje:
Squirrel Script
- packet <- Packet()
- packet.writeInt(1)
Squirrel Script
- function Packet::writeInt(value)
- {
- if (typeof(value) == "integer")
- {
-
- if (value >= 0)
- {
- if (value >= 0 && value <= 255)
- {
- Packet.writeUInt8(value)
- }
- else if (value >= 256 && value <= 65535)
- {
- Packet.writeUInt16(value)
- }
- else if (value >= 65536)
- {
- Packet.writeUInt32(value)
- }
- }
- else
- {
- if (value < 0 && value >= -128)
- {
- Packet.writeInt8(value)
- }
- else if (value <= -129 && value >= -32768)
- {
- Packet.writeInt16(value)
- }
- else if (value <= -32769)
- {
- Packet.writeInt32(value)
- }
- }
-
- }
- }
Metoda Packet.writeInt się wywołuje, lecz po wywołaniu metody Packet.writeUint8 następuje crash. Ktoś ma jakiś pomysł dlaczego?
Przy okazji, czy dodawania takiej metody to w ogóle dobry pomysł?