Пример #1
0
// Save a being to a sitef record.
func (me *Being) SaveSitef(rec *sitef.Record) (err error) {
	me.Entity.SaveSitef(rec)
	rec.PutInt("level", me.Level)

	if me.Gender != nil {
		rec.Put("gender", me.Gender.ID)
	}

	if me.Job != nil {
		rec.Put("job", me.Job.ID)
	}

	if me.Kin != nil {
		rec.Put("kin", me.Kin.ID)
	}

	me.Talents.SaveSitef(rec)
	me.Vitals.SaveSitef(rec)
	me.EquipmentValues.SaveSitef(rec)
	me.Aptitudes.SaveSitef(rec)
	me.Inventory.SaveSitef(rec)

	if me.Room != nil {
		rec.Put("room", me.Room.ID)
	}

	return nil
}
Пример #2
0
// Load a being from a sitef record.
func (me *Being) LoadSitef(rec sitef.Record) (err error) {
	me.Entity.LoadSitef(rec)

	me.Level = rec.GetIntDefault("level", 1)

	me.Gender = EntitylikeToGender(GenderEntityList.FindID(rec.Get("gender")))
	me.Job = EntitylikeToJob(JobEntityList.FindID(rec.Get("job")))
	me.Kin = EntitylikeToKin(KinEntityList.FindID(rec.Get("kin")))

	me.Talents.LoadSitef(rec)
	me.Vitals.LoadSitef(rec)
	me.EquipmentValues.LoadSitef(rec)
	me.Aptitudes.LoadSitef(rec)
	me.Inventory.LoadSitef(rec)

	if rec.Get("room") != "" {
		var err error
		me.Room, err = DefaultWorld.LoadRoom(rec.Get("room"))
		if err != nil {
			monolog.WriteError(err)
			return err
		}
	}
	return nil
}
Пример #3
0
Файл: item.go Проект: beoran/woe
func (me *Equipment) SaveSitef(rec sitef.Record) (err error) {
	for k, v := range me.Equipped {
		if v != nil {
			key := fmt.Sprintf("equipment[%s]", k)
			rec.Put(key, v.ID)
		}
	}
	return nil
}
Пример #4
0
func (me *Aptitudes) SaveSitef(rec *sitef.Record) (err error) {
	nskills := len(me.Skills)
	rec.PutInt("skills", nskills)
	for i := 0; i < nskills; i++ {
		rec.PutArrayIndex("skills", i, me.Skills[i].skill.ID)
	}

	return nil
}
Пример #5
0
// Load a character from a sitef record.
func (me *Character) LoadSirec(rec sitef.Record) (err error) {
	aname := rec.Get("accountname")
	account, err := DefaultWorld.LoadAccount(aname)
	if err != nil {
		return err
	}
	me.Account = account
	me.Being.LoadSitef(rec)
	return nil
}
Пример #6
0
Файл: item.go Проект: beoran/woe
func (me *Equipment) LoadSitef(rec sitef.Record, world *World, dirname string) (err error) {
	for k := range EquipWhereList {
		key := fmt.Sprintf("equipment[%s]", k)
		val, ok := rec.MayGet(key)
		if ok {
			item, err := world.LoadItem(val)
			if item != nil && err == nil {
				me.Equipped[EquipWhere(k)] = item
			}
		}
	}
	return nil
}
Пример #7
0
// Load an entity from a sitef record.
func (me *Entity) LoadSitef(rec sitef.Record) (err error) {
	me.ID = rec.Get("id")
	me.Name = rec.Get("name")
	me.Short = rec.Get("short")
	me.Long = rec.Get("long")
	return nil
}
Пример #8
0
// Save an entity to a sitef record.
func (me *Entity) SaveSitef(rec *sitef.Record) (err error) {
	rec.Put("id", me.ID)
	rec.Put("name", me.Name)
	rec.Put("short", me.Short)
	rec.Put("long", me.Long)
	return nil
}
Пример #9
0
// Save a character into a a sitef record.
func (me *Character) SaveSirec(rec *sitef.Record) (err error) {
	rec.Put("accountname", me.Account.Name)
	me.Being.SaveSitef(rec)
	return nil
}
Пример #10
0
func (me *EquipmentValues) LoadSitef(rec sitef.Record) (err error) {
	rec.GetStruct("", me)
	return nil
}
Пример #11
0
func (me *Vitals) LoadSitef(rec sitef.Record) (err error) {
	rec.GetStruct("", me)
	return nil
}
Пример #12
0
func (me *EquipmentValues) SaveSitef(rec *sitef.Record) (err error) {
	rec.PutStruct("", *me)
	return nil
}
Пример #13
0
func (me *Vitals) SaveSitef(rec *sitef.Record) (err error) {
	rec.PutStruct("", *me)
	return nil
}